繁体   English   中英

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

[英]Accessing $1 etc. outside of string.replace() in javascript regex?

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

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

现在我的问题是是否有一种方法可以访问$1捕获的数据,以此类推。 就像$1 backrefarray[1]的东西...

这样的事情有可能吗?

是的,您可以使用match:

var array = str.match(/(http:\/\/\S*)/g);

(但数组从索引0开始)

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

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

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

正则表达式。$ 1

另外,在完成任何正则表达式操作之后, $1$2捕获变量(如果存在)将作为全局RegExp对象的属性全局可用。 成功比赛后尝试以下方法:

alert(RegExp.$1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM