JavaScript String replace - How do you use matched

2019-01-24 07:42发布

问题:

How do you use the matched variables in the pattern in the replacement string?

var regexp = new RegExp('needle', 'ig');
str.replace(regexp, '<span class="marked">//1</span>')

回答1:

try

var regexp = new RegExp(something, 'ig');
str.replace(regexp, '<span class="marked">$&</span>')

References:

  • A table specifying the format of different tokens to be used into the replacement string

  • An example on how to switch two words into a string



回答2:

The correct way to use backreferences in JavaScript is via $1...$9.

To make your example work:

var regexp = new RegExp(something, 'ig');
var result = str.replace(regexp, '<span class="marked">$1</span>');

More information is available here: http://www.regular-expressions.info/javascript.html#replace