Javascript中的Regexp:将减号替换为逗号+;满足条件时为负
我需要将Javascript中的Regexp:将减号替换为逗号+;满足条件时为负,javascript,regex,Javascript,Regex,我需要将\-减号替换为\,+-逗号+减号,当减号前面有空格/没有空格/逗号时。在SVG路径中,我发现: `201.86-38.778` 我需要做到这一点 `201.86,-38.778`. `201.86,-38.778`. 我尝试了str.replace(/-/g,“\,-”),但这会在不需要时创建额外的逗号 更新,我也需要这个来像这样工作: `201.86 -38.778` // notice the space 成功 `201.86,-38.778`. `201.86,-38.
\-
减号替换为\,+-
逗号+减号,当减号前面有空格/没有空格/逗号时。在SVG路径中,我发现:
`201.86-38.778`
我需要做到这一点
`201.86,-38.778`.
`201.86,-38.778`.
我尝试了str.replace(/-/g,“\,-”)
,但这会在不需要时创建额外的逗号
更新,我也需要这个来像这样工作:
`201.86 -38.778` // notice the space
成功
`201.86,-38.778`.
`201.86,-38.778`.
用([-+])
查找并替换为,\1
您可以使用
/(^|[^,\s])-/g
见
细分:
-匹配并捕获字符串的开头或逗号或空格以外的字符(将在替换模式中使用(^ |[^,\s])
反向引用引用)$1
-文字连字符-
$1,-
,对捕获文本的反向引用+逗号和连字符
演示:
var re=/(^ |[^,\s])-/g;
var-str='201.86-38.778';
var result=str.replace(重,$1,');
document.body.innerHTML=结果我不知道如何只在这种情况下替换负号。我尝试了str.replace(/-/g,“\,-”)
,但这会在不需要时创建额外的逗号。一如既往地棒极了。