奇数(IMHO)在正则表达式(JS)中添加2个空格逗号和一个数字之间

oddity (IMHO) in regex (JS) to add 2 whitespace between comma and one digit number

本文关键字:数字 之间 一个 2个 正则表达式 IMHO JS 奇数 添加 空格      更新时间:2023-09-26

我有一个非常非常简单的字符串,就像这样:

data="1,2,3,4,5,"

我想在一位数前加两个空格。

所以我使用这个"非常非常简单"的正则表达式:

data = data.replace(/,'s*('d),/g,",  $1,");

但是输出是:

"1,  2,3,  4,5"

看:http://tinyurl.com/a8njw65

我完全糊涂了。对我来说,它必须工作:D我没有发现任何错误。但这行不通,所以我陷入了僵局。

确实有效。您在正则表达式中的2后面包含逗号,这意味着逗号不能成为正则表达式的下一个匹配的一部分。

试试这个

"1,24,3,4,56".replace(/,'s*('d)(?=,|$)/g,", $1");

问题是表达式消耗,,而下一个匹配将找不到它。为了解决这个问题,你可以使用遍历。例如:

"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,",  ");