JavaScript正则表达式:将重复的字符替换为一个字符

8

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

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

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

3个回答

16

将其更改为:

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

另一种方法是

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

该函数将任何一个或多个实例的 - 替换为一个 -


7

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

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

更多关于正则表达式的内容,请查看MDN文档 链接


2

您可以使用{x, y}来匹配xy之间任意次数的重复。您也可以省略上限或下限,因此使用{2,}代替{2}以替换至少出现两次的任何匹配项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接