为了账号安全,请及时绑定邮箱和手机立即绑定

如何不使用正则实现字符串的全局匹配,忽略大小写?

如何不使用正则实现字符串的全局匹配,忽略大小写?

侃侃无极 2019-01-31 21:56:19
题目描述由于我们需求是全局匹配替换字符串,但是替换的字符串都是客户需要随机输入,可能包含“()”,“/”等转义字符,所以选择不用正则表达式题目来源及自己的思路使用split和join可以全局替换,但是没有办法实现不区分大小写相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)function replace_string(s1,s2,s3) {if(s2){     s1 = s1.split(s2).join(s3);; }return s1;}你期待的结果是什么?实际看到的错误信息又是什么?不区分大小写的实现
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

给你个思路:

  1. 将 目标文本和用户输入全部做小写化,

  2. 在小写目标文本中匹配到小写用户输入后,记录起始位置。 可用 indexOf(str, ?position) 方法实现确定所有出现位置。

  3. 根据上一步记录的文本出现位置,结合匹配文本的长度,将原始目标文本截取出不需要替换的部分,可使用 substring(start,?end) 方法实现,得到一个数组。

  4. 然后将第三步得到的数组,使用join(替换文本)重新组合即可。


查看完整回答
反对 回复 2019-01-31
  • 1 回答
  • 0 关注
  • 675 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信