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

时间:2015-01-14 05:26:57

标签: javascript regex

如何匹配和替换某些模式,但在匹配中包含分隔符?

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

从此

"Buy today for $ 100 USD"

到此

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

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

我试过这个但是它没有用。

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

您还可以使用function返回替换

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