Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中有没有一种方法可以将双字母替换为单字母?_Javascript_Regex - Fatal编程技术网

在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");