用一个替换选项替换Javascript

用一个替换选项替换Javascript,javascript,replace,str-replace,Javascript,Replace,Str Replace,我目前正在清理代码,我有一个JS表达式,它将坏代码替换为: str.replace(/[\W_,.]/g,'-').toLowerCase(); 如果用户输入了这个a+ñ4a_i4amycode JS替换为=>a--4a-i4a,这个想法很好,但是没有那么多-。如果连字符在一起,则应将所有连字符替换为一个 因此代码应该输出a-4a-i4a 您知道如何替换同一个多字符的出现吗?您可以重复字符类[\W\u,.]+以匹配所有连续匹配,然后替换为单个- console.log(“a+ñ4a_i4a”

我目前正在清理代码,我有一个JS表达式,它将坏代码替换为:

str.replace(/[\W_,.]/g,'-').toLowerCase();
如果用户输入了这个
a+ñ4a_i4a
mycode JS替换为=>
a--4a-i4a
,这个想法很好,但是没有那么多
-
。如果连字符在一起,则应将所有连字符替换为一个

因此代码应该输出
a-4a-i4a


您知道如何替换同一个多字符的出现吗?

您可以重复字符类
[\W\u,.]+
以匹配所有连续匹配,然后替换为单个
-


console.log(“a+ñ4a_i4a”.replace(/[\W_4;,.]+/g,'-')。toLowerCase())请注意代码上的
+/g
,它解决了所有问题。向第四只鸟致敬