JavaScript正则表达式 - 数字之间的连字符

时间:2014-08-13 21:18:00

标签: javascript regex

尝试找到一个正则表达式来替换javascript replace()

的数字之间的所有连字符

字符串:

-14-2

正则表达式:

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

这适用于PHP和Ruby,但它并不表示JavaScript支持后面看。

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

var str = "-14-2";
var re = /(\d)-(\d)/;
var newstr = str.replace(re, "$1.$2");
console.log(newstr)

<强> jsFiddle example

答案 1 :(得分:1)

var s = '-14-2-'
var r = s.replace(/(\d)?-(?=\d)/g, function($0, $1) {
      return $1 ? $1+'.' : $0
}); //=> "-14.2-"

答案 2 :(得分:0)

不幸的是,Javascript并不支持lookbehind。

在您的情况下,您可以使用以下内容:

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

答案 3 :(得分:-1)

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

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