我正在尝试将所有双逗号替换为 ,null,
问题是我需要在它替换它的同时继续这样做。我正在考虑添加一个循环,但是还有其他更有效的替代方案吗?
var test = "[1,2,,,3,4,,,,,,5,6]".replace(/,{2}/g, ",null,");
alert(test);
结果应该是:
"[1,2,null,null,3,4,null,null,null,null,null,5,6]"
而是:
[1,2,null,,3,4,null,,null,,null,5,6]
所以我必须创建一个循环并执行它,直到完成所有双逗号为止。不知道还有没有其他办法?
作为附带信息,这是为了我以后可以这样做:
var myArray = $.parseJSON(test);
目前它失败了,我猜这是因为它不是有效的 json。
最佳答案
单个正则表达式:
"[AB,,,CD,,,,,,EF]".replace(/,(?=,)/g, ',null');
这里我们使用 ?=
前瞻查找 2 个逗号(“逗号后面有一个逗号”),但仅匹配并替换第一个逗号。
编辑:
您似乎对速度感兴趣,这里有一些 tests .
关于javascript - 替换双逗号,直到出现一些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22801765/