验证输入框

验证输入框正则要去一个一个记实在是太麻烦了,索性找到了一个整合比较多的正则

 1 //验证是否匹配
 2 function validateDataType(type, value) {
 3     var pattern;
 4     switch (type.toLowerCase()) {
 5         case "非空":
 6             return (value.length > 0);
 7             break;
 8         case "数字":
 9             pattern = "^[0-9]*$";
10             break;
11         case "整数":
12             pattern = "^(0|[1-9][0-9]*)$";
13             break;
14         case "正整数":
15             pattern = "^\+?[1-9][0-9]*$";
16             break;
17         case "负整数":
18             pattern = "^\-[1-9][0-9]*$";
19             break;
20         case "正数":
21             pattern = "^(0?.[0-9]*[1-9]|[1-9][0-9]*|[1-9][0-9]*\.[0-9]+)$";
22             break;
23         case "负数":
24             pattern = "^\-(0?.[0-9]*[1-9]|[1-9][0-9]*|[1-9][0-9]*\.[0-9]+)$";
25             break;
26         case "浮点数":
27             pattern = "^([+-]?)[0-9]*.?[0-9]+$";
28             break;
29         case "正浮点数":
30             pattern = "^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$";
31             break;
32         case "非负浮点数":
33             pattern = "^\d+(\.\d+)?$";
34             break;
35         case "金额":
36             pattern = "^([0-9]|[0-9].[0-9]{0,2}|[1-9][0-9]*.[0-9]{0,2})$";
37             break;
38         case "邮编":
39             pattern = "^\d{6}$";
40             break;
41         case "国内手机":
42             pattern = "^(13|15|18)\d{9}$";
43             break;
44         case "国内电话":
45             pattern = "^0\d{2,3}\-\d{7,8}$|^[0-9-]{7,13}$";
46             break;
47         case "国内身份证":
48             pattern = "^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}(\d{1}|(x|X))$";
49             break;
50         case "ip地址": //ip4
51             pattern = "^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$";
52             break;
53         case "ip地址带端口": //ip4
54             pattern = "^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]):\d{1,5}?$";
55             break;
56         case "url":
57             pattern = "^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-.\/?%&=]*)?$";
58             break;
59         case "email":
60             pattern = "^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$";
61             break;
62         case "仅字母":
63             pattern = "^[A-Za-z]+$";
64             break;
65         case "字母和数字":
66             pattern = "^[A-Za-z0-9]+$";
67             break;
68         case "仅大写字母":
69             pattern = "^[A-Z]+$";
70             break;
71         case "仅小写字母":
72             pattern = "^[a-z]+$";
73             break;
74         case "日期":
75             pattern = "^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";
76             break;
77         case "日期时间":
78             pattern = "^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$";
79             break;
80         case "字母数字下划线":
81             pattern = "^\w+$";
82             break;
83     }
84     if (!pattern)
85         return false;
86     return new RegExp(pattern).test(value);
87 }
原文地址:https://www.cnblogs.com/JessieR/p/8953969.html