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 に答える