JavaScript replace函数参数解析

时间:2025-01-19 17:52:56

replace第一个参数一般放置的是正则表达式或字符串,用来匹配想要替换的文本;第二个参数一般我们放入的是字符串,用来替换掉正则匹配到的文本。

第一种方法一般是放一个字符串在第二个参数中,直接用于替换所匹配到的字符;

第二种方法比较高阶的技巧,第一个参数为正则表达式,第二个参数使用$字符可以取得捕获括号中的内容,再进行相关操作。

       字符替换文本:

       $& 与正则相匹配的字符串

       $` 匹配字符串左边的字符

       $’ 匹配字符串右边的字符

       $1,$2,$,3,…,$n 匹配结果中对应的分组匹配结果  

还有第三种方法, 给第二个参数传入匿名函数,函数的返回值用做替换的字符。

匿名函数有4个参数可以传入,当然,这些参数都不是必须要传的。

第一个参数:正则所匹配到的字符;

第二个参数:捕获到的字符;

第三个参数:正则匹配到的每段字符的第一个字符的索引;

第四个参数:用于匹配的字符串主体;

例子:

第一种:

"abrde".replace("r", "c");

"abrde".replace(/r/, "c");

第二种:

var sStr='讨论一下正则表达式中的replace的用法';
(/正则表达式/,'《$&》');
// 得到:"讨论一下《正则表达式》中的replace的用法"
var sStr='讨论一下正则表达式中的replace的用法';
(/正则表达式/,'《$`》');
// 得到:"讨论一下《讨论一下》中的replace的用法"
var sStr='讨论一下正则表达式中的replace的用法';
(/正则表达式/,"《$'》");
// 得到:"讨论一下《中的replace的用法》中的replace的用法"
var sStr='讨论一下正则表达式中的replace的用法';
(/(正则)(.+?)(式)/,"《$1$2<$3>");
// 得到:"讨论一下《正则》表达<式>中的replace的用法"

第三种:

字符串:&lt;h1&gt;哈哈哈&lt;/h1&gt;

正则表达式:/&([^&;]+);/g

a:&lt b:lt c:0 d:&lt;h1&gt;哈哈哈&lt;/h1&gt;

a:&gt b:gt c:6 d:&lt;h1&gt;哈哈哈&lt;/h1&gt;

a:&lt b:lt c:14 d:&lt;h1&gt;哈哈哈&lt;/h1&gt;

a:&gt b:gt c:21 d:&lt;h1&gt;哈哈哈&lt;/h1&gt;