正则表达式javascript中$ 1

时间:2015-04-14 11:05:03

标签: javascript regex

当我使用var j= new RegExp('('+val+')','gi')时,$1工作正常。但是当我在没有支架的情况下使用它时它就不起作用了。所以我想知道为什么括号是必要的,$1是否保持必须替换的值?

var val='city'
var j= new RegExp('('+val+')','gi')
console.log(j)
$('div').html(function(i,val){
return val.replace(j,'<span>$1</span>')
})

3 个答案:

答案 0 :(得分:5)

$n将替换为与正则表达式中n捕获组匹配的字符串部分。捕获组是括号中正则表达式的一部分。如果您没有任何括号,则没有捕获组,因此$1不会被任何替换。

如果您希望匹配整个正则表达式,请使用$&

答案 1 :(得分:1)

括号中,您的意思是paranthesis吗?

如果是这样,paranthesis表示正则表达式中的capture group,这意味着内部的内容被捕获。

如果您在访问捕获的群组时需要帮助,可以查看this answer,这可以解释得非常彻底。

答案 2 :(得分:0)

括号用于在正则表达式中形成捕获组。在此处查看更多详细信息:http://www.regular-expressions.info/refcapture.html

请注意,为了匹配括号,您必须将它们转义。