我有一个非常简单的字符串:
data="1,2,3,4,5,"
我想在一位数字前添加两个空格。
所以我使用这个“非常非常简单”的正则表达式:
data = data.replace(/,\s*(\d),/g,", $1,");
但输出是:
"1, 2,3, 4,5"
见: http ://tinyurl.com/a8njw65
我完全糊涂了。对我来说它必须工作:我没有发现任何错误。但它不起作用,所以我陷入了僵局。
我有一个非常简单的字符串:
data="1,2,3,4,5,"
我想在一位数字前添加两个空格。
所以我使用这个“非常非常简单”的正则表达式:
data = data.replace(/,\s*(\d),/g,", $1,");
但输出是:
"1, 2,3, 4,5"
见: http ://tinyurl.com/a8njw65
我完全糊涂了。对我来说它必须工作:我没有发现任何错误。但它不起作用,所以我陷入了僵局。
尝试这个。
"1,24,3,4,56".replace(/,\s*(\d)(?=,|$)/g,", $1");
它确实有效。您在正则表达式中的 2 之后包含逗号,这意味着逗号不能成为正则表达式的下一个匹配项的一部分。
问题是表达式消耗了,
并且下一个匹配将找不到它。要解决它,您可以使用环视。例如:
"1,24,3,4,56".replace(/,\s*(\d)(?!\d)/g,", $1");
"1,24,3,4,56".replace(/,\s*(?=\d(?!\d))/g,", ");
"1,24,3,4,56".replace(/,\s*(?=\d(,|$))/g,", ");