Javascript中的Regexp:满足条件时用逗号+减号替换减号

时间:2016-03-21 19:34:34

标签: javascript regex

我需要在减号之前的空格/无空格/逗号替换\-减去\,+-逗号+减号。在SVG路径中,我发现了这个:

`201.86-38.778` 

我需要做到

`201.86,-38.778`.

我尝试了str.replace(/-/g,'\,-'),但这会在不需要时创建额外的逗号。

更新,我还需要这样工作:

`201.86 -38.778` // notice the space

使其成为

`201.86,-38.778`.

2 个答案:

答案 0 :(得分:2)

使用([-+])查找并替换为,\1 Regex101 Demo

答案 1 :(得分:1)

您可以使用

/(^|[^,\s])-/g

请参阅regex demo

故障:

  • (^|[^,\s]) - 匹配并捕获字符串的开头或逗号或空格以外的字符(将在替换模式中使用$1反向引用引用)
  • - - 字面连字符。

在替换模式中,使用$1,-,对捕获的文本+逗号和连字符进行反向引用。

演示:



var re = /(^|[^,\s])-/g; 
var str = '201.86-38.778';
var result = str.replace(re, '$1,-');
document.body.innerHTML = result;