如何在JavaScript中进行"原始"字符串搜索和替换,没有REGEX

Ton*_*nov 6 javascript regex string replace

如何在JavaScript中执行正确的字符串搜索和替换,绝对不涉及REGEX?

我知道文档说如果第一个参数String.prototype.replace()是字符串而不是正则表达式,那么它将进行文字替换.实践证明并非完全正确:

"I am a string".replace('am', 'are')
--> "I are a string"
Run Code Online (Sandbox Code Playgroud)

"I am a string".replace('am', 'ar$e')
--> "I ar$e a string"
Run Code Online (Sandbox Code Playgroud)

还行

"I am a string".replace('am', 'ar$$e')
--> "I ar$e a string"
Run Code Online (Sandbox Code Playgroud)

不好!

第二个美元符号在哪里?它是否正在寻找类似于$1替换REGEX的匹配...从未使用过的东西?

我很困惑和沮丧,任何想法?

Rob*_* M. 5

如果您使用replace回调而不是字符串文字,则不会执行自动正则表达式替换:

"I am a string".replace('am', () => 'ar$$e')
Run Code Online (Sandbox Code Playgroud)