Regex 避免负值的正则表达式

Regex 避免负值的正则表达式,regex,Regex,我对创建自己的正则表达式是完全陌生的。我的团队成员中有一名reg ex,如下所示 ^\s*-?\d{1,3}(\.\d{1,4})?\s*$ 这将确保输入的值最多有3位数字,并且可能有负号,也可能没有负号 如果我使用一个值进行测试,“-1000”,它将表示输入的值不符合要求,并且会向用户显示一个错误 我需要修改表达式,以便: 如果有“-”号,它可以有3个以上的数字和小数。[但是如果用户输入“-”和任何字母,它应该不匹配]您可以将其更改为此: ^\s*(\d{1,3}|-\d+)(\.\d

我对创建自己的正则表达式是完全陌生的。我的团队成员中有一名reg ex,如下所示

  ^\s*-?\d{1,3}(\.\d{1,4})?\s*$
这将确保输入的值最多有3位数字,并且可能有负号,也可能没有负号

如果我使用一个值进行测试,“-1000”,它将表示输入的值不符合要求,并且会向用户显示一个错误

我需要修改表达式,以便:


如果有“-”号,它可以有3个以上的数字和小数。[但是如果用户输入“-”和任何字母,它应该不匹配]

您可以将其更改为此:

^\s*(\d{1,3}|-\d+)(\.\d{1,4})?\s*$
(a | b)
形式中的第一部分表示
a
b
。它表示逗号前的部分是

  • 1至3位数字
  • -
    后跟至少一位数字

如果您只想验证一个数字是否在-999和999之间,请将其解析为一个整数,然后选中-999在正则表达式中使用
(或)运算符

^(\d{1,3}([.]\d{1,4})?|-\d+([.]\d+)?)$

谢谢,你能解释一下你为什么修改下面这个吗?
^\s*(\d{1,3}-\d{1,4})(\.\d{1,4})?\s*$
我只是觉得
\d+
\d{1,}
更干净。这是一样的。