用美元符号替换javascript正则表达式匹配组

时间:2014-03-26 01:04:34

标签: javascript regex

这个应该很简单:

我们取字符串:str="1.99 or 4.89"

我想在金额前添加一个美元符号。

我试过了:

str.replace(/(\d\.\d\d)/g,"$$1"));
它给了我:“1美元或1美元”......

所以我坚持做:

str.replace(/(\d\.\d\d)/g,"$ $1").replace(/\$ /g,'$')

它有效,但我确信有更好的方法!我试过逃避两个$符号和其他一些东西...... 期待您的回答:)

1 个答案:

答案 0 :(得分:8)

"1.99 or 4.89".replace(/(\d\.\d\d)/g, "$$$1")
// => "$1.99 or $4.89"

由于$在替换字符串中很特殊,因此必须将其转义为文字$$的{​​{1}}。它不会使用$字符进行转义,这是一种通用的字符串转义机制,并在字符串到达​​\之前进行处理(即如果您说replace,则它变为"\$"在作为参数传递之前,"$"永远不会看到转义。