Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript regexp匹配的组替换为美元符号_Javascript_Regex - Fatal编程技术网

将javascript regexp匹配的组替换为美元符号

将javascript regexp匹配的组替换为美元符号,javascript,regex,Javascript,Regex,这个应该很简单: 让我们用字符串:str=“1.99或4.89” 我想在金额前加一个美元符号 我试过: str.replace(/(\d\.\d\d)/g,"$$1")); 它给了我:“$1或$1” 所以我一直在做: str.replace(/(\d\.\d\d)/g,"$ $1").replace(/\$ /g,'$') 这是可行的,但我相信还有更好的办法!我试着逃避美元标志和其他一些东西。。。 期待您的回答:) 由于$在替换字符串中是特殊的,因此必须将其转义到$中,以获得文本$。它不是使

这个应该很简单:

让我们用字符串:
str=“1.99或4.89”

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

我试过:

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

所以我一直在做:

str.replace(/(\d\.\d\d)/g,"$ $1").replace(/\$ /g,'$')
这是可行的,但我相信还有更好的办法!我试着逃避美元标志和其他一些东西。。。 期待您的回答:)

由于
$
在替换字符串中是特殊的,因此必须将其转义到
$
中,以获得文本
$
。它不是使用
\
字符进行转义的,这是一种通用的字符串转义机制,并且在字符串到达
replace
之前进行处理(即,如果您说
“\$”
,它在作为参数传递之前会变成
“$”
,因此
replace
不会看到转义)。

$1
的意思是“第一个匹配的字符”。
"1.99 or 4.89".replace(/(\d\.\d\d)/g, "$$$1")
// => "$1.99 or $4.89"