js-正则替换字符串 replace() 方法
replace()方法介绍
replace()方法执行搜索替换操作。
它接收一个正则表达式作为第一个参数, 接收一个替换字符串作为第二个参数。
它搜索调用它的字符串, 寻找与指定模式匹配的文本。
如果正则表达式带g标志, replace()方法会替换字符串中的所有匹配项; 否则, 它只替换第一个匹配项。
如果replace()方法的第一个参数是一个字符串而非正则表达式, 这个方法会按照字面值进行搜索。
简单用法
1 | let text = 'my name is hu,you NAME is zhang'; |
不过replace()方法的能力远不止这些。比如在正则表达式中用括号()分组的子表达式是从左到右编号的, 而且正则表达式能记住每个子表达式匹配的文本。如果替换字符串中出现了$符号后面跟一个数字(例如$1代表第一组子表达式), replace()会将这两个字符替换为指定的子表达式匹配的文本。
1 | let str = 'abcdeABCDE'; |
如果正则表达式中使用的是命名捕获组, 则可以通过名字而非数字来引用匹配的文本, 如果使用命名捕获组就要把名字写到$<名字>中:
1 | let str = 'abcdABCD'; |
重点:函数替换
除了给replace()的第二个参数传替换字符串, 还可以传一个函数, 这个函数会被调用然后用来计算替换的值, 如果匹配到多个值则会对每个值进行一次计算替换。这个替换函数在被调用时会接收几个参数, 第一个参数是匹配的整个文本:
1 | let str = '小明有-100元,小李有5元,小张有-10元'; |
然后, 如果正则表达式有捕获组, 则后面几个参数分别是这些捕获组匹配的子字符串。对以上代码进行修改:
1 | let str = '小明有-100元,小李有5元,小张有-10元'; |
文章内容和代码来源于网络Js-正则替换字符串replace()方法,如有侵权请联系站长立即删除。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 赛博空间!
评论