无论如何将这两个正则表达式模式组合成一个?

时间:2014-10-14 09:08:45

标签: javascript regex

我有这两种模式,删除替换中的多个连字符或下划线,并用一个替换它们,但看到那里,基本相同,我很好奇,如果我可以将它们组合成一个模式。

url = url.replace(/([-]+)/g, '-');
url = url.replace(/([_]+)/g, '_');

我相信实际模式只是/([-_])/g,但我不知道如何判断它是否应该用连字符或下划线代替。

3 个答案:

答案 0 :(得分:3)

您可以使用反向引用:

url = url.replace(/([-_])\1+/g, '$1');

答案 1 :(得分:-1)

管道(|)运算符是OR函数。你能试试吗?

url = url.replace(/([-|_]+)/g, '-');

答案 2 :(得分:-1)

(-|_)+

试试这个。$1。见。演示。

http://regex101.com/r/yA5iD9/7