2

我有一个简单的 javascript 代码:

'test1 {0} test2 test3'.replace('{0}', "test$'")

我预计结果是test1 test$' test2 test3。但结果是test1 test test2 test3 test2 test3

这是绝对正常的。根据 mozilla 文档:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace

在这种情况下,$'序列具有意义。

但我想准确地{0}替换。test$'我不希望$'序列被其他东西取代。我尝试了很多方法:

'test1 {0} test2 test3'.replace('{0}', "test\$\'")
'test1 {0} test2 test3'.replace('{0}', "test\\$\\'")
'test1 {0} test2 test3'.replace('{0}', "test\u0024\u0027")
'test1 {0} test2 test3'.replace('{0}', "test\$'")

但没有任何效果。

如何转义$'序列以避免 Firefox 使用它?

4

2 回答 2

4

从您引用的页面:

$$ 插入一个“$”。

所以:

'test1 {0} test2 test3'.replace('{0}', "test$$'")

在 JSFiddle.net 上对我有用

于 2012-12-13T15:59:21.997 回答
-1

一种选择是使用正则表达式作为您的第一个参数:

'test1 {0} test2 test3'.replace(/\{0\}/, 'test$')

作品:http: //jsfiddle.net/Znwj2/

于 2012-12-13T16:05:00.323 回答