验证输入框正则要去一个一个记实在是太麻烦了,索性找到了一个整合比较多的正则
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 }