当减号前有空格/无空格/逗号时,我需要将 \-
减号替换为 \,+-
逗号+减号。在 SVG 路径中,我发现了这个:
`201.86-38.778`
我需要做到这一点
`201.86,-38.778`.
我尝试了 str.replace(/-/g,'\,-')
但这会在不需要时创建额外的逗号。
更新,我也需要这样才能工作:
`201.86 -38.778` // notice the space
做到这一点
`201.86,-38.778`.
最佳答案
你可以使用
/(^|[^,\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;
关于javascript - Javascript 中的正则表达式 : replace minus with comma+minus when condition is met,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36140004/