修改替换字符串内的正则表达式匹配
Modify regex matches inside the replacement string
我有一个问题,一些正则表达式从文本中抓取url,并通过函数再次修改替换字符串内的所有匹配。下面的代码是我想要做的一个虚拟示例。这样的事情可能发生吗?
var exp = /'b((http:'/'/|https:'/'/)['S]*)/g;
text = text.replace(exp, "<a href='"$1'" title='""+parseUri("$1").host+"'"></a>");
提供一个函数作为.replace
的第二个参数:
var exp = /'bhttps?:'/'/['S]*/g;
text = text.replace(exp, function ($0) {
return '<a href="' + $0 + '" title="' + parseUri($0).host + '"></a>'
});
(注意$0
只是一个变量名,您可以对它进行不同的命名)。
查看String.replace
在MDN上的文档,了解替换函数参数的含义。第一个参数是整个正则表达式捕获的文本。接下来的N个参数是正则表达式中N个捕获组捕获的文本。
我还冒昧地重写了正则表达式。由于'b
是一个断言,因此不会使用任何文本。
相关文章:
- 如何用正则表达式替换特定的JavaScript注释
- 用特定的javascript正则表达式替换每个单词
- 如何用JavaScript正则表达式替换href中的所有内容
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- Javascript 正则表达式替换为转义的反斜杠
- 使用 JavaScript 正则表达式替换文本中的类似字符串
- 在特殊标记之外使用 JavaScript 正则表达式替换
- 如何使用 javascript 在正则表达式替换中表示大括号
- 在字符串 JavaScript 中使用正则表达式替换
- 用Javascript正则表达式替换iframe到可点击的YouTube链接
- JS正则表达式替换编号
- 正则表达式:替换javascript中的字符串
- Javascript正则表达式替换以转换文本
- 正则表达式替换为插入符号
- 在javascript中用正则表达式替换空格
- 用正则表达式替换javascript
- 使用 JavaScript 正则表达式替换和递增整数值
- JS 正则表达式:替换字符串中的所有数字
- 正则表达式替换
- JS - 正则表达式替换在一次调用中发生多次,如何让它运行一次