废话:最近做的一个APP,大幅篇的表单填写、表单校验真的让人很恶心,其中某个模块有100多个字段,最多的一个模块300个字段。。。。。。已吐血。。。。。
表单校验刚开始也只是百度,结果后期测试的时候发现好多问题,遂,求人不如求己,自己动手写吧。
先举几个例子看看:
说明: ^: 开始标识; $: 结束标识;
0 - 10的正整数:
^([0-9]|10)$ 或者 ^(\d|10)$
[0-9]: 0-9的任意数,等同于\d;
0-100的正整数:
^(\d|[1-9]\d|100)$
中间用"|"连接,以上分别表示 0-9|10-99|100 \d: 0-9; [1-9]\d: 十位数1-9,个位数0-9; 100: 100。
0-200的正整数:
^(\d|[1-9]\d|1[0-9]{2}|200)$
中间用"|"连接,以上分别表示 0-9|10-99|100-199|200 1[0-9]{2}: 百位数是1,十位数0-9,个位数0-9。
0-34的正整数:
^(\d|[1-2]\d|3[0-4])$
0-9|10-29|30-34
0-250的正整数:
^(\d|[1-9]\d|1[0-9]{2}|2[0-4]\d||250)$
0-9|10-99|100-199|200-249|250
0-999的正整数:
^(\d|[1-9]\d{1,2})$
那么有小数的呢?
0-10的一位小数:
^((\d)(\.\d{0,1})?|10)$
\. :小数点; \d{0,1}: 0-9的一位数; ?:取前面的任意长度。
0-20的两位小数,包括20、20.0、20.00:
((\d)(\.\d{0,2})?|10|10\.[0]{0,2})$
10\\.[0]{0,2}: 10.0 或者 10.00
30-45的一位小数:
^(3\d{0,1}|4[0-4]{0,1})(\.\d{0,1})?$ | ^45 ∣ 4 5 . [ 0 ] 0 , 1 |^45\\.[0]{0,1} ∣45.[0]0,1
\.[0-9]{0,1}: 一位小数 \.\d{0,2} : 二位小数
我用到的所有校验:
0-34: ^(\d|[1-2]\d|3[0-4])$
0-99: ^(\d|[1-9]\d)$
0-100: ^(\d|[1-9]\d|100)$
0-200: ^(\d|[1-9]\d|1[0-9]{2}|200)$
0-250: ^(\d|[1-9]\d|1[0-9]{2}|2[0-4]\d||250)$
0-999: ^(\d|[1-9]\d{1,2})$
0-9999: ^(\d|[1-9]\d{1,3})$
1-15: ^(1[0-5]{1}|[1-9]{1})$
0.0-6.0: ^(([0-5]{0,1})(\.\d{0,1})?|6|6\.[0]{0,1})$
0.0-19.9: ^(\d|1\d)(\.\d{0,1})?$
0-99.9: ^(\d|[1-9]\d)(\.\d{0,1})?$
0-100.0: (\d|[1-9]\d)(\.\d{0,1})?$|^100$|100\.[0]{0,1}$
0-170.0: (\d|[1-9]\d|1[0-6]\d)(\.\d{0,1})?$|^170$|170\.[0]{0,1}$
0-300.0: (\d|[1-9]\d|[1-2][0-9]{2})(\.\d{0,1})?$|^300$|300\.[0]{0,1}$
30.0-45.0: (3\d{0,1}|4[0-4]{0,1})(\.\d{0,1})?$|^45$|45\.[0]{0,1}$
0-10.00: ((\d)(\.\d{0,2})?|10|10\.[0]{0,2})$
0-99.99: ^(\d|[1-9]\d)(\.\d{0,2})?$
0-100.00: (\d|[1-9]\d)(\.\d{0,2})?$|^100$|100\.[0]{0,2}$
0-999.9: ^(\d|[1-9]\d{1,2})(\.\d{0,1})?$
0-999.99: ^(\d|[1-9]\d{1,2})(\.\d{0,2})?$
0-9999.9: ^(\d|[1-9]\d{1,3})(\.\d{0,1})?$
0-9999.99: ^(\d|[1-9]\d{1,3})(\.\d{0,2})?$
就写这么多吧,有啥问题可留言给我,另外本人也是刚学着写,大神请勿喷。 好久不写博客了,发现都不会组织语言了,吐血。。。。