十进制正则表达式为零

时间:2015-06-10 06:59:18

标签: javascript regex

我们有一个正则表达式如下:

/[^0-9\\.()]/g

但是,它不接受用户输入0,例如它说0.06无效。我希望这些输入也有效。

我们所需要的只是上面的正则表达式接受0(零)。

3 个答案:

答案 0 :(得分:2)

删除^:

,试试这个正则表达式
/[0-9.()]/g

答案 1 :(得分:1)

您正尝试使用相同的正则表达式进行输入清理和验证。 不能使用相同的正则表达式执行这两项任务。

清理后,您可以添加如下验证步骤:

/^\d*(?:\.\d+)*$/

示例代码:

var str = 'abc0.06abc';
var newstr = str.replace(/[^0-9.()]/g, '');
if (/^\d*(?:\.\d+)*$/.test(str) == false) {
   console.log(newstr + " is valid");  
}
else {
  console.log(newstr + " is not valid");
}

请参阅http://jsfiddle.net/zxw5sL2m/8/

答案 2 :(得分:0)

谢谢德雷克。您提供的链接可以解决问题。

var str = '0.05';
var newstr = str.replace(/[^0-9\.()]/g, '');
console.log(newstr);