我目前使用“(\ d){1,9}”,但它无法使诸如“0134”之类的数字无效。该表达式必须仅验证积极INTEGERS的数字。感谢。
答案 0 :(得分:7)
现在你使用表达式[0-9]{1,9}
,所以这显然允许数字0134
。如果要求第一个字符不是零,则必须使用[1-9][0-9]{0,8}
。
顺便说一下:0134 是一个正整数。它是一个整数,是正数。 ;)
编辑:
为防止整数溢出,您可以使用此模式:
[1-9][0-9]{0,8}
[1-1][0-9]{9}
[2-2][0-1][0-9]{8}
[2-2][1-1][0-3][0-9]{7}
[2-2][1-1][4-4][0-6][0-9]{6}
我想你明白了。然后将这些表达式与|
结合起来,就完成了。
或者,查看Integer.valueOf(String)
方法,它如何解析数字并检查溢出。复制该代码并使用NumberFormatException
更改部件。
答案 1 :(得分:5)
您可以使用如下所示的正则表达式:
^(?!^0)\d{1,9}$
你的意思是说正面整数没有前导零我相信。