JavaScript中replace仅替换首个匹配项,如何全量替换', '为','?
问题:批量替换字符串中的
, 为, 需要将目标字符串里所有的, (逗号加空格)替换为,,让字符串仅以逗号分隔值。当前使用的代码如下:
let t = 'POLYGON((595117.1423555185 5784603.23154566, 595123.4425648759 5784792.817361793, 595123.4467946623 5784792.959964871, 595131.3773480996 5785096.90776269, 595137.0802208507 5785261.194424775, 595196.9548982648 5785262.269346152, 595198.8303912097 5785262.391339741))' t=t.replace(', ',',') console.log(t)
执行后仅替换了第一个, ,后续匹配项未被修改,如何实现全量替换?
解决方案
JavaScript中,replace方法如果以字符串作为匹配参数,只会替换第一个匹配项。要实现全量替换,需要使用带全局标志g的正则表达式:
let t = 'POLYGON((595117.1423555185 5784603.23154566, 595123.4425648759 5784792.817361793, 595123.4467946623 5784792.959964871, 595131.3773480996 5785096.90776269, 595137.0802208507 5785261.194424775, 595196.9548982648 5785262.269346152, 595198.8303912097 5785262.391339741))' t = t.replace(/, /g, ',') console.log(t)
说明
/ , /是匹配,(逗号加空格)的正则表达式模式- 末尾的
g是全局匹配标志,会让replace遍历整个字符串,替换所有符合模式的内容
内容的提问来源于stack exchange,提问作者Amrmsmb
相关产品推荐
相关产品推荐

