正则表达式匹配并替换为 JS 中包含的定界符

Regex match and replace with delimiters included in JS

如何匹配和替换一些模式,但在我的匹配中包含定界符?

我想在这两个分隔符 $USD 周围添加一个 <strong> HTML 标记。

由此

"Buy today for $ 100 USD"

对此

"Buy today for <strong>$ 100 USD</strong>"

价格可以是 100100.99,甚至 1,000.99

我正在尝试这个,但它不起作用。

someString.replace(/($)(.*?)(USD)/, '<strong></strong>');

你也可以用function来return替换

someString.replace(/($[ ]?[\d\.\,]+[ ]?USD)/, 
          function(x){
              return '<strong>' + x + '</strong>';
          }
);

只需将定界符放在主捕获组内,而不是将它们分成三组。

var r = 'Buy today for $ 100 USD'.replace(/($.*?USD)/, '<strong></strong>')
console.log(r); //=> "Buy today for <strong>$ 100 USD</strong>"