正则表达式以避免负值

时间:2013-10-10 14:38:11

标签: regex

我是创建自己的正则表达式的新手。我有一个reg ex开发我的团队成员,如下所列

  ^\s*-?\d{1,3}(\.\d{1,4})?\s*$

这将确保输入的值最多为3位数,可能有也可能没有负号。

RegExp Calculator

如果我测试一个值,“-1000”就会说输入的值不符合要求,并且会向用户显示错误。

我需要以下列方式修改表达式:

If a “-“ sign is there, it can have more than 3 digits and decimals. [But if the user enter a “-“ and any alphabets, it should not match ]

3 个答案:

答案 0 :(得分:1)

您可以将其更改为:

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

(a|b)形式的第一部分表示ab。这意味着逗号之前的部分是

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

答案 1 :(得分:1)

在regex中使用|(OR)运算符

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

答案 2 :(得分:-1)

如果您只想验证数字是否介于-999和999之间,请将其解析为整数并检查-999< x< 999。