如何在 JavaScript 中進行「原始」字串搜尋與取代,不使用正則表達式
我如何在 JavaScript 中執行正確的字串搜尋與取代,而完全不使用正則表達式?
我知道文件上說,如果 String.prototype.replace() 的第一個參數是字串,而不是正則表達式的話,它將會進行字面上的替換。但實際操作顯示,這並不完全正確:
"I am a string".replace('am', 'are')
--> "I are a string"
好
"I am a string".replace('am', 'ar$e')
--> "I ar$e a string"
仍然可以
"I am a string".replace('am', 'ar$$e')
--> "I ar$e a string"
不行!
第二個美元符號在哪裡?它是不是在尋找像 $1 這樣的東西,用來替換正則表達式中的匹配項……但那從未被使用過?
我感到非常困惑和沮喪,有什麼建議嗎?
答案#1
如果你使用替換回呼函式而不是字串常值,自動的正則表達式替換將不會執行:
"I am a string".replace('am', () => 'ar$$e')
