在JavaScript中有没有一种方法可以将双字母替换为单字母?
我有一个词,在JavaScript中有没有一种方法可以将双字母替换为单字母?,javascript,regex,Javascript,Regex,我有一个词,mississippi,我想用s替换第一个ss,这样这个词就是mississippi。这在正则表达式中是可能的吗 到目前为止,我已经了解了var filtered=oldString.replace(/[^\w\s]|(.)\1/I,” 但这只是用零代替了双精度。我想用一个字母替换。带一个前瞻(在本例中,第二个s不匹配,但只测试其存在性) 或者在替换字符串中使用捕获组和反向引用(替换字符串是捕获组内容): 您必须用要替换匹配项的内容告诉替换函数: var filtered=oldSt
mississippi
,我想用s
替换第一个ss
,这样这个词就是mississippi
。这在正则表达式中是可能的吗
到目前为止,我已经了解了var filtered=oldString.replace(/[^\w\s]|(.)\1/I,”代码>
但这只是用零代替了双精度。我想用一个字母替换。带一个前瞻(在本例中,第二个s不匹配,但只测试其存在性)
或者在替换字符串中使用捕获组和反向引用(替换字符串是捕获组内容):
您必须用要替换匹配项的内容告诉替换函数:
var filtered=oldString.replace(/[^\w\s]|()\1/i,“s”)代码>所以你想要拼错的版本?不,他想要拼错的版本@KubaWyrostek-很好地发挥了[^\w\s]|
在这里的真正目的是什么?/(\w)\1/i
不够吗?@KubaWyrostek:也许他想同时删除所有不是单词字符或空格的内容。注意,在这种情况下,添加一个量词更好:/[^\w\s]+|((?=\1)/i
Nope-只想将两个ss
变成一个s
@Shamoon:在这种情况下,/[a-z])(?=\1)/i
([a-z])\1/i
,替换为“$1”
。
var filtered = oldString.replace(/[^\w\s]|(.)(?=\1)/i, "");
var filtered = oldString.replace(/[^\w\s]|(.)\1/i, "$1");