我有一个正则表达式,它用连字符替换所有非字母数字字符。
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/