javascript - Javascript 中的正则表达式 : replace minus with comma+minus when condition is met

标签 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`.

最佳答案

你可以使用

/(^|[^,\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/

相关文章:

regex - 删除具有特定模式的行

c# - 正则表达式:获取 id 列表

javascript - ES6 : Using a class as a module

javascript - 替换空格但不替换括号之间的空格

javascript - 为什么我会看到重复的 JavaScript 异步响应?

php - 如何将 RGB(A) 值保存在数组中?

regex - 如何使用多个 OR 运算符定义正则表达式,其中每个术语都包含空格前缀和后缀?

regex - 奇怪的 grep 角落案例?

javascript - 更新 jQuery $(document).ready() 基本范围内的变量?

javascript - 干: Make all functions "return this"