如何匹配和替换某些模式,但在匹配中包含分隔符?
我想在这两个分隔符<strong>
和$
周围添加USD
HTML标记。
从此
"Buy today for $ 100 USD"
到此
"Buy today for <strong>$ 100 USD</strong>"
价格可以是100
,100.99
,甚至是1,000.99
。
我试过这个但是它没有用。
someString.replace(/(\$)(.*?)(USD)/, '<strong>$1</strong>');
答案 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>';
}
);