javascript正则表达式可选减号

时间:2016-07-22 09:38:33

标签: regex

我在javascript中有以下功能:

function unString(String){     
   var justNumbers = /(?=.*\d)\d*(?:\.\d*)?/;
   var result      = String.match(justNumbers);
   result *= 1;
   result = Math.round(result*100) / 100;
   return result;
}

它的意思是从每个可能的css值中提取数字,以便可以添加或减去或与其他值相乘: 即克。

var newPadding = unString(  $('#myID').css("padding-bottom")  )*10 + "px";

修改了我的代码后,我现在需要正则表达式允许可选的减号,允许像“-3px”这样的值转换为“-3”(实际上函数不能并返回“0”)。

[我知道stackoverflow和其他论坛上有大量可选的减去正则表达式线程,但它们与我的正则表达式的形式不匹配 - 我对正则表达式没有太多经验,因为创建上面的我必须做的漫长而激烈的研究 - 所以我无法修改我的正则表达式,参考这些]

[正则表达式应该允许数字,可选的小数点和可选的减号]

提前谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用

/-?[0-9]*\.?[0-9]+/g

请参阅regex demo

<强>解释

  • -? - 一个可选的连字符(您可以将其替换为[-+]?,以便可选地匹配-+
  • [0-9]* - 零个或多个数字
  • \.? - 一个可选的点
  • [0-9]+ - 一位或多位数。