【发布时间】:2017-12-09 09:42:59
【问题描述】:
我有一个包含单词的句子(字符串)。我想用另一个单词替换所有出现的单词。我使用newString = oldString.replace(/w1/gi, w2);,但现在我需要向用户报告我实际替换了多少单词。
有没有一种快速的方法来做到这一点而不诉诸:
- 一次替换一个单词并计数。
- 逐字比较
oldString和newString并计算差异? (最简单的情况是,如果 oldString === newString => 0 个替换,但除此之外,我必须同时运行并比较)。
我可以在这里使用任何 RegEx“诡计”,还是应该避免使用 g 标志?
【问题讨论】:
-
使用回调
var cnt=0; var res = s.replace(/str/g, function($0) { cnt++; return 'newstr';});
标签: javascript regex string