Javascript 仅替换为一个替换选项

Javascript replacing with just one replacing option

我目前正在清理代码,我有这个 JS 表达式来替换错误代码:

str.replace(/[\W_,.]/g,'-').toLowerCase();

如果用户输入此 a+ñ4a_i4a 我的代码 JS 将替换为 => a--4a-i4a 这个想法很好,但没有那么多 - - - -。如果连字符 在一起 .

,它应该只用一个连字符替换所有连字符

所以代码应该输出a-4a-i4a

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

您可以重复字符class [\W_,.]+来匹配所有连续的匹配,然后替换为单个-

console.log("a+ñ4a_i4a".replace(/[\W_,.]+/g, '-').toLowerCase());