您的位置:首页 > Web前端 > JavaScript

JavaScript中replace()方法使用时应该注意的几点

2015-06-02 00:07 701 查看
JavaScript中自带标准库中的replace方法使用时的几点注意

关于具体使用的方式参加W3School给出的API http://www.w3school.com.cn/jsref/jsref_replace.asp。本文主要是记录几点我们使用时需要注意的地方:
1.如果正则表达式中设置了修饰符g,那么源字符串中所有与模式匹配的子串都将替换成第二个参数指定的字符串;如果不带修饰符g,则只替换所有匹配的第一个子串。

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

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

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

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

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

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

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

str.replace(reg1,function(word){

var _attr=word.replace(reg2,替换的字符串);

return _attr; });

其中,函数中的参数 word 是与 reg1 匹配的字符串

5.使用replace方法进行替换时,并不会改变原来的那个String对象的值,其返回值是一个新的String对象。例如 :
var str = '12345';

console.log(str.replace('1', '7'));

console.log(str);

输出: 72345 12345 (测试环境为chrome)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: