如何使用javascript在单个正则表达式中递归替换文本字符串中重复的逗号

如何使用javascript在单个正则表达式中递归替换文本字符串中重复的逗号,javascript,regex,Javascript,Regex,如何使用javascript在单个正则表达式中递归替换文本字符串中重复的逗号?我当前的代码: var myval = "aaa,,,,bbb,,,,,,,ccc,,,,,,,,ddd,,,,,,,eee"; do { myval = myval.replace(/,,/g, ','); } while (myval.indexOf(",,") > 0); console.log(myval); 您只需使用以下功能: myval.replace(/,+/g, ',') 它将用一个,

如何使用javascript在单个正则表达式中递归替换文本字符串中重复的逗号?我当前的代码:

var myval = "aaa,,,,bbb,,,,,,,ccc,,,,,,,,ddd,,,,,,,eee";
do {
  myval = myval.replace(/,,/g, ',');
} while (myval.indexOf(",,") > 0);
console.log(myval);
您只需使用以下功能:

myval.replace(/,+/g, ',')
它将用一个

在正则表达式中,选择2个逗号
/,/
,但这会选择大于
0
的任何金额

此外,您发布的代码在一个

中似乎运行良好。您可以使用以下代码:

myval.replace(/,+/g, ',')
它将用一个

在正则表达式中,选择2个逗号
/,/
,但这会选择大于
0
的任何金额


此外,您发布的代码在一个

中似乎运行良好,只是在
替换中进行了一点修改

myval.replace(/,+/g, ',');
var myval=“aaa,,,,,bbb,,,,,,,ccc,,,,,,ddd,,,,,,,,,,eee”;
myval=myval.replace(/,+/g',,');

文件写入(myval)只需在
替换中稍作修改

myval.replace(/,+/g, ',');
var myval=“aaa,,,,,bbb,,,,,,,ccc,,,,,,ddd,,,,,,,,,,eee”;
myval=myval.replace(/,+/g',,');

文件写入(myval)可以使用正向前瞻:

var myval = "aaa,,,,bbb,,,,,,,ccc,,,,,,,,ddd,,,,,,,eee";
myval.replace(/,+(?=,)/g, '') // prints "aaa,bbb,ccc,ddd,eee"
这种方法将清除字符串中不必要的逗号,而不修改单个逗号。

请参阅工作说明。

可以使用正向前瞻:

var myval = "aaa,,,,bbb,,,,,,,ccc,,,,,,,,ddd,,,,,,,eee";
myval.replace(/,+(?=,)/g, '') // prints "aaa,bbb,ccc,ddd,eee"
这种方法将清除字符串中不必要的逗号,而不修改单个逗号。

请参阅工作说明。

myval.replace(/,+/g',,')我相信rock321987的评论是一个很好的答案。您可以使用在线正则表达式测试仪来测试正则表达式。示例:
myval.replace(/,+/g,,)我相信rock321987的评论是一个很好的答案。您可以使用在线正则表达式测试仪来测试正则表达式。这是不正确的。它将只替换一系列逗号的第一次出现。@DmitriPavlutin谢谢你通知我,那是一个打字错误,我忘记了
g
它不正确。它将只替换一系列逗号的第一次出现。@DmitriPavlutin谢谢你通知我,那是一个拼写错误,我忘记了
g