正数和负数的正则表达式验证是什么?

时间:2017-08-16 04:55:59

标签: asp.net regex validation

我目前有一个正则表达式验证器,限制用户只输入大于1的数字。如何允许正数和负数?

^[1-9]+([0-9]+)*$

2 个答案:

答案 0 :(得分:1)

添加 - ?会做的伎俩:

^-?[1-9]+([0-9]+)*$

答案 1 :(得分:0)

假设负数仅由前面的-符号标记,则以下表达式应该有效:

/(^|( )|\t)(-|)\d{1,}/gm

说明:

  • 首先,(^| )匹配新行的开头OR(因为|)白色空格(来自空格键)或制表符。如果您对输入周围的空白区域有要求,可以在本节中调整此正则表达式。
  • 接下来,(-|)匹配-字符OR(因为|)没有
  • 然后它匹配一个数字\d,其中至少有一个数字,但可能是一个无限数字(因为{1,}
  • 接下来,g设置全局标志,允许匹配多个实例。
  • 最后,m设置多行标志,允许匹配跨越行。这对于^换行符正确匹配是必要的。

对此进行了测试,结果如下:

-0934 sdj2a
1328 232
-93 2939 -192

匹配组是: -09341328232-932939-192