【问题标题】:JavaScript regex - hyphens between numbersJavaScript 正则表达式 - 数字之间的连字符
【发布时间】:2014-08-13 21:17:59
【问题描述】:

试图找到一个正则表达式来替换 javascript replace() 数字之间的所有连字符

字符串:

-14-2

正则表达式:

/(?<=\d)-(?=\d)/

这适用于 PHP 和 Ruby,但似乎 JavaScript 不支持向后看。

有什么建议吗?

【问题讨论】:

  • 你用什么替换连字符?
  • 哇,一些编辑 :) 你最初发布的正则表达式怎么样?
  • 哎呀!我刚刚更新了帖子。我将其替换为小数,因此可以将其解析为浮点数 var prevVal = parseFloat(quoteObj.text().replace(/(?&lt;=\d)-(?=\d)/, "."));

标签: javascript regex


【解决方案1】:
var str = "-14-2";
var re = /(\d)-(\d)/;
var newstr = str.replace(re, "$1.$2");
console.log(newstr)

jsFiddle example

【讨论】:

  • 谢谢!为简单起见,用粉笔画一个!
【解决方案2】:
var s = '-14-2-'
var r = s.replace(/(\d)?-(?=\d)/g, function($0, $1) {
      return $1 ? $1+'.' : $0
}); //=> "-14.2-"

【讨论】:

    【解决方案3】:

    不幸的是,Javascript 不支持后视。

    在你的情况下,你可以使用这样的东西:

    var numbers = "-14-2";
    numbers.replace(/(\d+)-(\d+)/, "$1.$2")
    

    【讨论】:

      【解决方案4】:

      字符串是否比您显示的更多?因为你可以简单地做

      var f = "-14-2"; 
      f.replace(/(\d)-(\d)/,function(a,b,c){
          return b+"."+c}
      );
      //.14.2
      

      【讨论】:

      • “替换数字之间的所有连字符”。这将替换所有这些。
      • @j08691 除非他们编辑了答案,否则它甚至不会那个
      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      相关资源
      最近更新 更多