js中replace()方法使用注意

家住魔仙堡 提交于 2019-12-04 15:49:33

1.如果正则表达式中设置了修饰符g,那么源字符串中所有与模式匹配的子串都将替换成第二个参数指定的字符串;如果不带修饰符g,则只替换所有匹配的第一个子串。

2.replace()的第一个参数若是字符串而不是正则表达式,则replace()将直接搜索这个字符串

eg. text.replace(/javascript/gi,"JavaScript");  // 将所有不区分大小写的javascript都替换成JavaScript

3.正则表达式中使用圆括号括起来的子表达式是带有从左到右的索引编号的,而且正则表达式会记忆与每个子表达式匹配的文本,如果在替换字符串中出现了$加数字,那么replace()将用与指定的子表达式相匹配的文本来替换这两个字符。

eg. var quote = /"([^"]*)"/g;   //一段用双引号括起来的文本,且中间内容区域不能包含引号

      text.replace(quote,'“$1”');  //用中文引号替换英文引号,同时保持引号之间的内容(存储在$1中)没有被修改

4.replace()方法的第二个参数可以是函数

eg.   //使用函数动态生成的字符串_attr来替换

    text.replace(正则表达式1,function(word){
            var _attr=word.replace(正则表达式2,替换的字符串);
            return _attr; });

其中,函数中的参数 word 是与 正则表达式1 匹配的字符串


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!