JavaScript 正则表达式如果出现次数超过 n 则替换

标签 javascript regex slug

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

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

这可以正常工作,但是由于这是根据用户输入生成的,我最终可能会得到像 my-awesome-title---stuff 这样的结果,它可以输入为 我很棒的标题和内容

如您所见,我现在有三个连续的连字符,这作为一个漂亮的网址并不真正有吸引力。

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

最佳答案

类似这样的事情:

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

应将一个或多个非字母数字字符替换为 1 个连字符。在本例中,“+”表示一个或多个实例。

关于JavaScript 正则表达式如果出现次数超过 n 则替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6124704/

相关文章:

javascript - 禁用 img 缩放/调整大小? (如何获得 "reveal effect"?)

regex - 你能解释一下这个正则表达式吗

regex - 如何在 shell 脚本中将正则表达式用于多行模式

php - str_replace

c# - C# 中的 Slugify 和字符音译

javascript - 将文本与单选按钮对齐

javascript - JS 中的 3 种继承类型和 [.isPrototypeOf()] 结果的差异

javascript - jQuery 替代 .keyup 函数

c# - 所有非字母数字符号的正则表达式

django - autoslugfield 进入 django-admin 界面?