JavaScript正则表达式用一个替换重复的字符

时间:2011-09-03 15:57:40

标签: javascript regex

我正在尝试使用正则表达式替换一些重复的字符:

var string = "80--40";
string = string.replace(/-{2}/g,"-");    // result is "80-40"

这会将两个minus替换为一个,但是如何更改代码以便替换两个或更多?我只想在数字之间出现一个减号。

3 个答案:

答案 0 :(得分:9)

将其更改为:

string = string.replace(/-{2,}/g,"-");

另一种方式是

string = string.replace(/-+/g,"-");

因为它只用-替换-的任何一个或多个实例。

答案 1 :(得分:2)

{2}只匹配两个,+匹配一个或多个。

string = string.replace(/\-+/g, '-');

有关RegEx的更多信息,请See the MDN documentation

答案 2 :(得分:1)

您可以指定{x, y}以匹配xy之间的任意重复次数。您也可以不使用上限或下限,因此请使用{2,}代替{2}来替换至少发生两次的匹配。