有没有办法在JavaScript中用单个替换双字母?

时间:2016-03-04 21:19:43

标签: javascript regex

我有一个单词mississippi,我希望将第一个ss替换为s,以便该单词为misissippi。这是正确的吗?

我已经到了这个目的var filtered = oldString.replace(/[^\w\s]|(.)\1/i, "");

但是,这简直就是取而代之的。我想用一个字母替换。

2 个答案:

答案 0 :(得分:4)

使用前瞻(在这种情况下,第二个s不匹配,但仅检测其存在)

var filtered = oldString.replace(/[^\w\s]|(.)(?=\1)/i, "");

或使用替换字符串中的捕获组和反向引用(替换字符串是捕获组内容)

var filtered = oldString.replace(/[^\w\s]|(.)\1/i, "$1");

答案 1 :(得分:1)

你必须告诉replace函数你要替换匹配的内容: var filtered = oldString.replace(/[^\w\s]|(.)\1/i, "s");