如何删除字符串中除逗号后的所有逗号:
输入:",123,,,456,789,,,00,"
输出:"123,45678900"
我尝试了这种方法:
str.replace(/(.*,.*)(,)(.*)/g ,"$1$3");
但它无法正常工作。
答案 0 :(得分:5)
这是一种方法,我看不到一个独特的正则表达式:
str.replace(/,?(\d+),/, "$1;").replace(/,/g, '').replace(/;/, ",");
答案 1 :(得分:3)
您想解决问题还是您感兴趣的正则表达式?您的问题可以使用
解决var tmp = input.split(",");
for(var i=0; i<tmp.length; i++) {
if(tmp[i].match(/[0-9\.]+/)) {
tmp[i] += ",";
break;
}
}
var output = tmp.join("");
在这里只使用一个正则表达式是非常复杂的,我相信(但还没有完全认为它通过)它不能在没有递归模式的情况下完成(不支持在Javascript中):您必须在第一个/(.+?),/
之前和之后用\1
替换任意多个/[0-9]+,/
个实例。
答案 2 :(得分:0)
有点丑陋的方法,但应该工作正常:
',123,,,456,789,,,00,'.match(/\d+/g).reduce(function(a, b, i) {
return a + (i === 1 ? ',' : '') + b;
}); // "123,45678900"