捕获单个组中字符串中的连续非字母数字字符

时间:2013-08-10 04:30:15

标签: javascript regex

我想用破折号替换字符串中的所有特殊字符。我使用以下正则表达式替换字符。

var x = "Querty(&)keypad";
alert(x.replace(/[^A-Za-z0-9]/g, "-"));

但是,这会导致每个字符都被短划线替换,而不是用单个短划线替换连续的字符。这个例子给了我输出Querty---keypad。我想要的输出是Querty-keypad

您可以在此jsfiddle中看到问题。

1 个答案:

答案 0 :(得分:7)

使用+匹配一个或多个重复:

> "Querty(&)keypad".replace(/[^A-Za-z0-9]+/g, "-")
"Querty-keypad"