我想验证用户输入,
它应该接受,
1+2
1.2+56+3.5
它不应该接受任何字母,除了以外的特殊字符。和+
主要是它不应该接受++和..
请帮我正则表达。
答案 0 :(得分:0)
像这样的东西应该就足够了
^([+]?\d+(\.\d+)?)*$
http://regex101.com/r/qE2kW1/2
来源:Validate mathematical expressions using regular expression?
答案 1 :(得分:0)
这应该有效:
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
答案 2 :(得分:0)
请注意,我假设它不应该接受。+或+。同样。我不是假设您需要在添加之前检查多个小数,这意味着这将接受3.4.5我还假设您希望它以数字开头和结尾,因此.5和4+将失败。
(\d*[\.\+])*(\d)*
这需要任意数量的数值,然后是a。或+,任意次数,后跟任何其他数字值。
为避免像3.4.5这样的事情,你可能需要使用某种形式。
编辑:忘记格式化正则表达式。