帮助regexp替换字符串中的每秒逗号

时间:2009-05-20 18:12:09

标签: javascript regex

我有一串显示如下......

1235,3,1343,5,1234,1

我需要用分号替换每隔一个逗号

即。

1235,3; 1343,5; 1234,1

字符串长度将始终不同,但将遵循与上述相同的模式,即数字逗号空格数字逗号空格等。

我怎么能用javascript做到这一点?有可能吗?

谢谢, 麦克

6 个答案:

答案 0 :(得分:8)

'1235, 3, 1343, 5, 1234, 1'.replace(/([0-9]+),\s([0-9]+),\s/g, '$1, $2; ')

答案 1 :(得分:7)

var s = '1235, 3, 1343, 5, 1234, 1';
var result = s.replace(/(,[^,]*),/g,"$1;");

答案 2 :(得分:4)

var s='1235, 3, 1343, 5, 1234, 1';

s=s.replace(/([^,]+,[^,]+),/g,'$1;')

匹配任何不是逗号的内容,后跟逗号, 其次是任何不是逗号和逗号的内容。

用自身('$ 1')替换parens(不包括最后一个逗号)内部的everthing,并添加分号代替该逗号。

答案 3 :(得分:3)

怎么样:

var regex = /(\d+),\s(\d+),\s/g;
var str = '1235, 3, 1343, 5, 1234, 1'; 
alert(str.replace(regex, '$1, $2; ')); // 1235, 3; 1343, 5; 1234, 1

答案 4 :(得分:2)

var myregexp = /(\d+,\s\d+),/g;
result = subject.replace(myregexp, "$1;");

答案 5 :(得分:0)

var foo = "1235,3,1343,5,1234,1".replace(/(.\*?),(.\*?),/g, "$1,$2;");

console.log(foo)