javascript - 在 javascript 正则表达式中访问 string.replace() 之外的 $1 等?

标签 javascript regex backreference

众所周知,$1 等是使用正则表达式时对 string.replace() 中捕获的组的反向引用,因此您可以执行以下操作:

string.replace(/(http:\/\/\S*)/g, '<a href="$1" target="_blank">link<\/a>')

现在我的问题是是否有办法在替换之外访问 $1 等中捕获的数据。就像 backrefarray[1] 代表 $1 或其他东西......

这样的事情可能吗?如何实现?

最佳答案

您可以使用函数代替固定字符串进行替换:

string.replace(/(http:\/\/\S*)/g, function() {
    return '<a href="'+arguments[1]+'" target="_blank">link<\/a>';
})

整个模式和每组的匹配作为参数传递给函数。

关于javascript - 在 javascript 正则表达式中访问 string.replace() 之外的 $1 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13788779/

相关文章:

javascript 不更新 p 标签的文本

javascript - 谷歌驱动器公共(public)

javascript - 正则表达式,将每个 CSV 字段用双引号引起来

java - 如何使用字符串替换的反向引用作为 Java 中 HashMap 的键?

regex - Notepad++ 搜索/替换中的正则表达式反向引用语法 -\1 或 $1

javascript - Nodejs 等待本地主机......并获取数据

javascript - 如何在 Sencha Touch 中使用 SVG 作为对象?

Java正则表达式replaceAll不工作

javascript - 正则表达式 : whitespace in filename Javascript

regex - 匹配数字中的增量数字