为什么String.prototype.replace进程只匹配第一个?

sky*_*yer -1 javascript

我相信你们都知道 "some string".replace("s", "")条带只是第一次"发生"但是原因是什么?

任何人都可以给我一些内部逻辑的输入吗?我没有在EMCA规范中找到这一点 我的意思是每个决定都应该有一个动机部分,对我来说理解原因非常重要.

jos*_*736 5

它以这种方式工作的原因就在于规范中:

如果searchValue是不是正则表达式,让searchString的是的ToString(searchValue)和搜索字符串的第一次出现搜索字符串.设m为0.

规范说找出第一次出现,而不是每次出现.