正则表达式以验证数字的总和

时间:2014-10-30 13:12:06

标签: regex

我想验证用户输入,

它应该接受,

1+2
1.2+56+3.5

它不应该接受任何字母,除了以外的特殊字符。和+

主要是它不应该接受++和..

请帮我正则表达。

3 个答案:

答案 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

在线:http://regex101.com/r/zJ6tP7/1

答案 2 :(得分:0)

请注意,我假设它不应该接受。+或+。同样。我不是假设您需要在添加之前检查多个小数,这意味着这将接受3.4.5我还假设您希望它以数字开头和结尾,因此.5和4+将失败。

(\d*[\.\+])*(\d)*

这需要任意数量的数值,然后是a。或+,任意次数,后跟任何其他数字值。

为避免像3.4.5这样的事情,你可能需要使用某种形式。

编辑:忘记格式化正则表达式。