如果超过n次出现,则使用JavaScript Regex替换

Jam*_*mes 0 javascript regex slug

我有一个正则表达式,用连字符替换所有非字母数字字符.

slugName = $(this).val().replace(/[^a-z0-9]/gi, '-');
Run Code Online (Sandbox Code Playgroud)

这应该是应该的,但是因为这是从用户输入生成的,所以我可能最终得到一个my-awesome-title---stuff可以输入的结果my awesome title & stuff

正如您所看到的,我现在有三个连续的连字符,它们并不像一个漂亮的URL那样具有吸引力.

如果有连续的连字符行,是否有某些方法可以替换此类事件?

npi*_*nti 6

像这样的东西:

slugName = $(this).val().replace(/[^a-z0-9]+/gi, '-');
Run Code Online (Sandbox Code Playgroud)

应该用1个连字符替换非字母数字的一个或多个字符实例.在这种情况下,'+'表示一个或多个实例.