正则表达式验证NUMERICS
问题描述:
答
这应该工作:
var regex = /^[0-9]+(\.[0-9]+)?(\+[0-9]+(\.[0-9]+)?)*$/;
"1+2".match(regex); // not null
"1.2+56+3.5".match(regex); // not null
"1++2".match(regex); // null
"1..2".match(regex); // null
答
这样的东西应该足够
^([+]?\d+(\.\d+)?)*$
http://regex101.com/r/qE2kW1/2
来源:Validate mathematical expressions using regular expression?
答
请注意,我假设它不应该接受+或+。以及。我并不假定在添加之前需要检查多个小数,这意味着这将接受3.4.5我还假设您希望它以数字开始和结束,所以.5和4+将失败。
(\d*[\.\+])*(\d)*
这需要任意数量的数值,然后是a。或a +,任意次数,然后是任何其他数字值。
为了避免像3.4.5这样的事情,您可能需要使用某种查找方式。
编辑:忘了格式化正则表达式。
你能告诉我们你试过了什么吗? – 2014-10-30 13:14:54
也许你可以通过尝试“评估”来解析表达式 – paul 2014-10-30 13:19:26
这就是我所拥有的http://jsfiddle.net/DwKZh/763/,我尝试了这里提供的所有表达式,但仍然允许我输入无效的输入。 – Dosti 2014-10-31 07:08:46