我有一个单词mississippi
,我希望将第一个ss
替换为s
,以便该单词为misissippi
。这是正确的吗?
我已经到了这个目的var filtered = oldString.replace(/[^\w\s]|(.)\1/i, "");
但是,这简直就是取而代之的。我想用一个字母替换。
答案 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");