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)
关于具体使用的方式参加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)
相关文章推荐
- jsp中include使用html静态文件出现乱码问题
- javascript客户端检测技术
- JavaScript 计时事件
- JavaScript 弹窗
- GET获得json
- 数组去重javascript
- 数据类型回顾——JS学习笔记2015-6-1(第45天)
- JS
- 10. 获取Magento域名及图片,JS路径方法
- JavaScript Window Location
- JavaScript Window Screen
- JavaScript Window - 浏览器对象模型
- [LeetCode][JavaScript]Triangle
- 购物车中拼接的json数据
- JavaScript RegExp 对象
- JavaScript Boolean(布尔) 对象
- JavaScript Array(数组) 对象
- JavaScript Date(日期) 对象
- JavaScript: Names and Versions
- JavaScript 字符串(String) 对象