Javascript replace() - 从替换规则中排除$ 1

时间:2010-08-27 06:13:08

标签: javascript

如何从替换规则中排除$ 1?

regex = new RegExp('hallo, test, blub', 'gi');


content = content.replace(regex,'<strong>$1</strong>');

alert('$1'); // dont work

提前致谢! 彼得

2 个答案:

答案 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);