我们有一个正则表达式如下:
/[^0-9\\.()]/g
但是,它不接受用户输入0
,例如它说0.06
无效。我希望这些输入也有效。
我们所需要的只是上面的正则表达式接受0(零)。
答案 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");
}
答案 2 :(得分:0)
谢谢德雷克。您提供的链接可以解决问题。
var str = '0.05';
var newstr = str.replace(/[^0-9\.()]/g, '');
console.log(newstr);