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

How to recursively replace duplicated commas in text string in a single regex using javascript

本文关键字:字符串 文本 递归 javascript 何使用 单个 正则表达式 替换      更新时间:2023-09-26

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

var myval = "aaa,,,,bbb,,,,,,,ccc,,,,,,,,ddd,,,,,,,eee";
do {
  myval = myval.replace(/,,/g, ',');
} while (myval.indexOf(",,") > 0);
console.log(myval);

只需对replace 进行一点修改

myval.replace(/,+/g, ',');

var myval = "aaa,,,,bbb,,,,,,,ccc,,,,,,,,ddd,,,,,,,eee";
myval = myval.replace(/,+/g, ',');
document.write(myval);

您可以使用以下内容:

myval.replace(/,+/g, ',')

它将用一个, 替换任何包含1个或多个逗号的字符串(即,,,,,,

在RegEx中,您可以选择2个逗号/,,/,但这会选择任何大于0的金额。

此外,您发布的代码在JSFiddle 中似乎运行良好

可以使用正向前瞻:

var myval = "aaa,,,,bbb,,,,,,,ccc,,,,,,,,ddd,,,,,,,eee";
myval.replace(/,+(?=,)/g, '') // prints "aaa,bbb,ccc,ddd,eee"

这种方法将清除字符串中不必要的逗号,而不修改单个逗号
请参阅正在运行的jsbin演示。