我有这样的地址:
117042,ABC DEF,HIJ KLMNOP,9,170
并希望拥有
117042,ABC DEF,HIJ KLMNOP 9 170
我尝试使用此替换Regex
address = address.replace(/,[\d]/g, " ");
但这会导致
117042,ABC DEF,HIJ KLMNOP 70
我不想替换数字,但仍需要检查数字是否在逗号之后与其他逗号不匹配。
我对正则表达式不是很好,这就是我寻求帮助的原因。
答案 0 :(得分:3)
如果数字出现在字符串末尾,则只能在数字后面替换逗号:
var s = "117042,ABC DEF,HIJ KLMNOP,9,170";
var res = s.replace(/,(\d+)(?=(?:,\d+)*$)/g, " $1");
console.log(res);
,(\d+)(?=(?:,\d+)*$)
正则表达式匹配:
,
- 逗号(\d+)
- (第1组,通过替换模式中的$1
引用)一个或多个数字(?=(?:,\d+)*$)
- 一个积极的前瞻,需要0 + ,
个序列,在字符串末尾有一个或多个数字。