replace第一个参数一般放置的是正则表达式或字符串,用来匹配想要替换的文本;第二个参数一般我们放入的是字符串,用来替换掉正则匹配到的文本。
第一种方法一般是放一个字符串在第二个参数中,直接用于替换所匹配到的字符;
第二种方法比较高阶的技巧,第一个参数为正则表达式,第二个参数使用$字符可以取得捕获括号中的内容,再进行相关操作。
字符替换文本:
$& 与正则相匹配的字符串
$` 匹配字符串左边的字符
$’ 匹配字符串右边的字符
$1,$2,$,3,…,$n 匹配结果中对应的分组匹配结果
还有第三种方法, 给第二个参数传入匿名函数,函数的返回值用做替换的字符。
匿名函数有4个参数可以传入,当然,这些参数都不是必须要传的。
第一个参数:正则所匹配到的字符;
第二个参数:捕获到的字符;
第三个参数:正则匹配到的每段字符的第一个字符的索引;
第四个参数:用于匹配的字符串主体;
第四个参数:用于匹配的字符串主体;
例子:
第一种:
"abrde".replace("r", "c");
"abrde".replace(/r/, "c");
第二种:
var sStr='讨论一下正则表达式中的replace的用法';
sStr.replace(/正则表达式/,'《$&》');
// 得到:"讨论一下《正则表达式》中的replace的用法"
var sStr='讨论一下正则表达式中的replace的用法';
sStr.replace(/正则表达式/,'《$`》');
// 得到:"讨论一下《讨论一下》中的replace的用法"
var sStr='讨论一下正则表达式中的replace的用法';
sStr.replace(/正则表达式/,"《$'》");
// 得到:"讨论一下《中的replace的用法》中的replace的用法"
var sStr='讨论一下正则表达式中的replace的用法';
sStr.replace(/(正则)(.+?)(式)/,"《$1》$2<$3>");
// 得到:"讨论一下《正则》表达<式>中的replace的用法"
第三种:
字符串:
哈哈哈
正则表达式:/&([^&;]+);/g
a:< b:lt c:0 d:
哈哈哈
a:> b:gt c:6 d:
哈哈哈
a:< b:lt c:14 d:
哈哈哈
a:> b:gt c:21 d: