猿问

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

题目描述

由于我们需求是全局匹配替换字符串,但是替换的字符串都是客户需要随机输入,可能包含“()”,“/”等转义字符,所以选择不用正则表达式

题目来源及自己的思路

使用split和join可以全局替换,但是没有办法实现不区分大小写

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
function replace_string(s1,s2,s3) {

if(s2){
    s1 = s1.split(s2).join(s3);;
}return s1;

}

你期待的结果是什么?实际看到的错误信息又是什么?

不区分大小写的实现


小怪兽爱吃肉
浏览 408回答 1
1回答

一只斗牛犬

给你个思路:将 目标文本和用户输入全部做小写化,在小写目标文本中匹配到小写用户输入后,记录起始位置。 可用 indexOf(str, ?position) 方法实现确定所有出现位置。根据上一步记录的文本出现位置,结合匹配文本的长度,将原始目标文本截取出不需要替换的部分,可使用 substring(start,?end) 方法实现,得到一个数组。然后将第三步得到的数组,使用join(替换文本)重新组合即可。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答