如何从替换规则中排除$ 1?
regex = new RegExp('hallo, test, blub', 'gi');
content = content.replace(regex,'<strong>$1</strong>');
alert('$1'); // dont work
提前致谢! 彼得
答案 0 :(得分:0)
$1
是指正则表达式捕获的第一个组,仅在替换字符串中可用。
例如,如果内容为The score is 234
且正则表达式为score is (\d+)
,则会将其替换为<strong>234</strong>
。
如果您想要该值,可以使用content.match(regex)[1]
。
var c = "asd 123";
var r = /[a-z]+\s+(\d+)/;
var match = c.match(r);
if(match)
console.log(match[1]);
else
console.log("no match");
答案 1 :(得分:0)
$ 1仅适用于replace()
的第二个参数,并且不存在于该行代码之外。如果您确实需要亲自操作匹配字符串,那么可以执行以下操作:
var dollar1;
content = content.replace(regex, function(s, p1) {
dollar1 = p1;
return '<strong>' + p1 + '</strong>';
});
alert(dollar1);