怎么用正则表达式表示 0到10000的整数?

时间:2022-07-21 05:50:37
在表单验证时需要,但我没研究过正则,请教一下会的人,帮我解决一下。

14 个解决方案

#1


^([1-9]\d{1,3})|10000|0$

#2


1楼 我试了一下 不行!!!

#3


...这个用得着正则么,直接if num > 0 & num < 1000不就结了。

#4


为何要用正则?

直接:
var num = 333;
if(num>0 && num<10000) {
 return true;
}

不就行了

#5


我做的分页功能,是表单验证啊,所以必须是整数,num>0 && num<10000,那num要是浮点数怎么办?

#6


临时写的,没验证过

#7


引用 1 楼 spiniper 的回复:
^([1-9]\d{1,3})|10000|0$

^([1-9]\d{1,4})|10000|0$

#8


一楼的和七楼的匹配不了1-9,^\d|[1-9]\d{1,3}|10000$是正解

#9


引用 7 楼 huyong479072052 的回复:
引用 1 楼 spiniper 的回复:

^([1-9]\d{1,3})|10000|0$

^([1-9]\d{1,4})|10000|0$


1001呢?

#10


([1-9]\d{0,3})||10000

#11


([1-9]\d{0,3})|0|10000

#12


引用 9 楼 zhoubing0206 的回复:
引用 7 楼 huyong479072052 的回复:
引用 1 楼 spiniper 的回复:

^([1-9]\d{1,3})|10000|0$

^([1-9]\d{1,4})|10000|0$


1001呢?

这样呢
^[1-9]([0-9]\d{0,3})|10000|0$

#13


引用 2 楼 szxhfgszxhfg 的回复:
1楼 我试了一下 不行!!!

改改就成
^([1-9]\d{0,3})|10000|0$

#14


    	String regex = "(?!0)[0-9]{1,4}|10000|0"; //包括10000和0的时候 ,不包括直接(?!0)[0-9]{1,4}
     for (int i = 0; i<=10000; i++) {
     if (!((i+"").matches(regex))){ //不匹配就打印出来
     System.out.println(i);
     }
     }
     System.out.println("0012".matches(regex)); //理论上讲这种也应该不符合。
怎么用正则表达式表示 0到10000的整数?

#1


^([1-9]\d{1,3})|10000|0$

#2


1楼 我试了一下 不行!!!

#3


...这个用得着正则么,直接if num > 0 & num < 1000不就结了。

#4


为何要用正则?

直接:
var num = 333;
if(num>0 && num<10000) {
 return true;
}

不就行了

#5


我做的分页功能,是表单验证啊,所以必须是整数,num>0 && num<10000,那num要是浮点数怎么办?

#6


临时写的,没验证过

#7


引用 1 楼 spiniper 的回复:
^([1-9]\d{1,3})|10000|0$

^([1-9]\d{1,4})|10000|0$

#8


一楼的和七楼的匹配不了1-9,^\d|[1-9]\d{1,3}|10000$是正解

#9


引用 7 楼 huyong479072052 的回复:
引用 1 楼 spiniper 的回复:

^([1-9]\d{1,3})|10000|0$

^([1-9]\d{1,4})|10000|0$


1001呢?

#10


([1-9]\d{0,3})||10000

#11


([1-9]\d{0,3})|0|10000

#12


引用 9 楼 zhoubing0206 的回复:
引用 7 楼 huyong479072052 的回复:
引用 1 楼 spiniper 的回复:

^([1-9]\d{1,3})|10000|0$

^([1-9]\d{1,4})|10000|0$


1001呢?

这样呢
^[1-9]([0-9]\d{0,3})|10000|0$

#13


引用 2 楼 szxhfgszxhfg 的回复:
1楼 我试了一下 不行!!!

改改就成
^([1-9]\d{0,3})|10000|0$

#14


    	String regex = "(?!0)[0-9]{1,4}|10000|0"; //包括10000和0的时候 ,不包括直接(?!0)[0-9]{1,4}
     for (int i = 0; i<=10000; i++) {
     if (!((i+"").matches(regex))){ //不匹配就打印出来
     System.out.println(i);
     }
     }
     System.out.println("0012".matches(regex)); //理论上讲这种也应该不符合。
怎么用正则表达式表示 0到10000的整数?