[英]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
, $2
捕获变量(如果存在)将作为全局RegExp对象的属性全局可用。 成功比赛后尝试以下方法:
alert(RegExp.$1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.