自己编写的一个Javascript正则表达式对象

这个对象很简陋,仅仅是为了判断制作的一个类,顺便的作用就是搜集正则表达式,方便整理!

代码:

  1 /**
  2  * [reg description]
  3  * ①判断是否是空值 -----> noinput 是空,返回false
  4  * ②js常用正则表达式 ------> regex 
  5  * @type {Object}
  6  * @author  Zell Dintch
  7  * mktime   2014/8/22   22:31
  8  */
  9 var reg = {
 10     "noinput": function (v, jqObj, msg) {
 11     //v是要检验的值,jqObj是Jquery选择器对象(错误提示出现的地方),提示的文本
 12         if (v=='') {
 13             jqObj.css({'color':'red','font-weight':'normal'}).html(" "+msg.err);
 14             return false;
 15         } else {
 16             jqObj.css({'color':'grey','font-weight':'normal'}).html("");
 17         }
 18     },
 19     "trim2": function (v) {
 20         //v是文本框的值
 21         return v.replace(/(^\s*)|(\s*$)/g, "");
 22     },
 23     "trim":function (str) {
 24         return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, '');
 25     },
 26     //精确验证是否是身份证号
 27     "isIDCard": function (idCard) {
 28         var ret=false;
 29         var w=[7 , 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9 , 10, 5 ,8 , 4, 2];            
 30            if( idCard.length == 18 ){
 31         //身份证号码长度必须为18,只要校验位正确就算合法
 32         var crc=idCard.substring(17);
 33         var a = new Array();
 34         var sum = 0;
 35         for(var i=0;i<17;i++){
 36             a.push(idCard.substring(i,i+1));
 37             sum += parseInt(a[i],10)*parseInt(w[i], 10);
 38             //alert(a[i]);
 39         }
 40         sum %= 11;
 41         var res= "-1";
 42         switch (sum) {
 43             case 0:{
 44                 res="1";
 45                 break;
 46             }
 47             case 1:{
 48                 res="0";
 49                 break;
 50             }
 51             case 2:{
 52                 res="X";
 53                 break;
 54             }
 55             case 3:{
 56                 res="9";
 57                 break;
 58             }
 59             case 4:{
 60                 res="8";
 61                 break;
 62             }
 63             case 5:{
 64                 res="7";
 65                 break;
 66             }
 67             case 6:{
 68                 res="6";
 69                 break;
 70             } 
 71             case 7:{
 72                 res="5";
 73                 break;
 74             } 
 75             case 8:{
 76                 res="4";
 77                 break;
 78             } 
 79             case 9:{
 80                 res="3";
 81                 break;
 82             }
 83             case 10:{
 84                 res="2";
 85                 break;
 86             }
 87         }
 88         if( crc.toLowerCase() == res.toLowerCase() ){
 89                  ret=true; 
 90               }
 91               //ret=true; 
 92            } else if (idCard.length == 15){
 93             //15位的身份证号,只验证是否全为数字
 94             var pattern = /^\d{15}$/;
 95             ret = pattern.test(idCard);
 96             return ret;
 97            }
 98           return ret;
 99     },
100     "chkPwdLevel": function (v) {
101         //检测密码强度---仿新浪网密码强度
102         /*
103             规则如下:6-16位字符(字母、数字、符号),区分大小写
104                 ①数字的情况下:
105                     6位数字:密码强度较弱,请重新输入
106                     7-9位数字:弱:试试字母、数字和标点混合
107                     10-16位数字:中:试试字母、数字和标点混合
108                 ②字母情况下:
109                     6-9位字母:弱:试试字母、数字和标点混合
110                     10-16位字母:中:试试字母、数字和标点混合
111                 ③符号情况下:
112                     6-9位符号:弱:试试字母、数字和标点混合
113                     10-16位符号:中:试试字母、数字和标点混合
114                 ④有空格:
115                     密码不能包含空格符
116                 ⑤有全角符号:
117                     不支持特殊符号
118                 ⑥留空:
119                     请输入登录密码
120                 ⑦密码小于5位:
121                     密码较短,最短支持6个字符
122                 ⑧密码大于16位:
123                     密码最长支持16位字符
124                 6-9位:字母、数字、符号中含任意2种或3种组合
125                     中:试试字母、数字和标点混合
126                 10-16位:字母、数字、符号中任意2种或3种组合
127                     强:请牢记您的密码
128                 4种组合:(大小写字母、数字、符号4种组合),无论位数
129                     强:请牢记您的密码
130          */
131         var vw=0,w=1,m=2,s=3;//w---weak,m---medium,s---strong
132         var m1 = "密码强度较弱,请重新输入",
133         m2 = "<span style='color:red'>弱</span>:试试字母、数字和标点混合",
134         m3 = "<span style='color:orange'>中</span>:试试字母、数字和标点混合",
135         m5 = "密码长度错误,支持长度为6-16位字符",
136         m6 = "密码中含不支持的(全角)特殊符号",
137         m4 = "<span style='color:green'>强</span>:请牢记您的密码";//msg
138         var _res = {};
139         var len = v.length;
140         var word1 = /^[a-z]+$/,
141         word2 = /^[A-Z]+$/,
142         number = /^[0-9]+$/,
143         symbol = /^[\,\.\/\<\>\?\;\'\:\"\[\]\{\}\\\|\=\-\+\_\)\(\*\&\^\%\$\#\@\!\~\`]+$/;
144         var n = number.test(v),
145         wo1 = word1.test(v),
146         wo2 = word2.test(v),
147         sy = symbol.test(v);
148         //两两组合
149         var n_wo1 = /^[0-9a-z]+$/,
150         n_wo1Reg = n_wo1.test(v),
151         n_wo2 = /^[0-9A-Z]+$/,
152         n_wo2Reg = n_wo2.test(v),
153         n_sy = /^[0-9\,\.\/\<\>\?\;\'\:\"\[\]\{\}\\\|\=\-\+\_\)\(\*\&\^\%\$\#\@\!\~\`]$/,
154         n_syReg = n_sy.test(v),
155         wo1_wo2 = /^[a-zA-Z]+$/,
156         wo1_wo2Reg = wo1_wo2.test(v),
157         wo1_sy = /^[a-z\,\.\/\<\>\?\;\'\:\"\[\]\{\}\\\|\=\-\+\_\)\(\*\&\^\%\$\#\@\!\~\`]$/,
158         wo1_syReg = wo1_sy.test(v),
159         wo2_sy = /^[A-Z\,\.\/\<\>\?\;\'\:\"\[\]\{\}\\\|\=\-\+\_\)\(\*\&\^\%\$\#\@\!\~\`]$/,
160         wo2_syReg = wo2_sy.test(v);
161         //三类组合
162         var n_wo1_wo2 = /^[0-9a-zA-Z]+$/,
163         n_wo1_wo2Reg = n_wo1_wo2.test(v),
164         n_wo1_sy = /^[0-9a-z\,\.\/\<\>\?\;\'\:\"\[\]\{\}\\\|\=\-\+\_\)\(\*\&\^\%\$\#\@\!\~\`]+$/,
165         n_wo1_syReg = n_wo1_sy.test(v),
166         n_wo2_sy = /^[0-9A-Z\,\.\/\<\>\?\;\'\:\"\[\]\{\}\\\|\=\-\+\_\)\(\*\&\^\%\$\#\@\!\~\`]+$/,
167         n_wo2_syReg = n_wo2_sy.test(v),
168         n_wo1_wo2_sy = /^[a-zA-Z0-9\,\.\/\<\>\?\;\'\:\"\[\]\{\}\\\|\=\-\+\_\)\(\*\&\^\%\$\#\@\!\~\`]+$/,
169         n_wo1_wo2_syReg = n_wo1_wo2_sy.test(v);
170         //全角符号
171         var full_sy = /[a-z0-9,./;'[]=-)(*&^%$#@!~`_++{}":?><。、》《”‘\|]/,
172         full_syReg = full_sy.test(v);
173         if (len<6 || len>16) {
174             return _res = {"level":vw, 'msg': m5};
175         } else {
176             if (len >=6 && len<=9) {
177                 //单一组合
178                 if (len == 6 && (n || wo1 || wo2)) {//6位数字
179                     return _res = {"level":0, "msg": m1};
180                 } else if (n || wo1 || wo2 || sy) {//7-9位数字
181                     return _res = {"level":w, "msg": m2};
182                 }
183                 //多组合
184                 if (n_wo1Reg || n_wo2Reg || n_syReg || wo1_wo2Reg || wo1_syReg || wo2_syReg) {
185                     return _res = {"level":m, "msg": m3};
186                 }
187                 if (n_wo1_wo2Reg || n_wo1_syReg || n_wo2_syReg) {
188                     return _res = {"level":m, "msg": m3};
189                 }
190                 //终极组合
191                 if (n_wo1_wo2_syReg) {
192                     return _res = {"level":s, "msg": m4};
193                 }
194                 //全角
195                 if (full_syReg) {
196                     return _res = {"level":vw, "msg": m6};
197                 }
198             } else if (len>=10 && len<=16) {
199                 if (n || wo1 || wo2 || sy) {
200                     return _res = {"level":m, "msg": m3};
201                 }
202                 //多组合
203                 if (n_wo1Reg || n_wo2Reg || n_syReg || wo1_wo2Reg || wo1_syReg || wo2_syReg) {
204                     return _res = {"level":s, "msg": m4};
205                 }
206                 if (n_wo1_wo2Reg || n_wo1_syReg || n_wo2_syReg) {
207                     return _res = {"level":s, "msg": m4};
208                 }
209                 //终极组合
210                 if (n_wo1_wo2_syReg) {
211                     return _res = {"level":s, "msg": m4};
212                 }
213                 //全角
214                 if (full_syReg) {
215                     return _res = {"level":vw, "msg": m6};
216                 }
217             }
218         }
219     },
220     "regex": {
221         //整数或者含2位小数,小数是2位
222         "NF": /^[0-9]+\.{0,1}[0-9]{0,2}$/,
223         //简单粗暴的身份证号
224         "IDCard" : /^\d{15}|\d{18}$/,
225         //形如: xxx-xxxxxxxx-xxx的电话号码
226         "phone": /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/,
227         //常用11位手机号码
228         "tel": /^(?:13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/,
229         //邮箱
230         "email": /^[0-9a-zA-Z]+([\._\-][0-9a-zA-Z]+)*@[0-9a-zA-Z_\-]+(\.[0-9a-zA-Z_\-]+)+$/,
231         //汉字、字母、数字或下划线或中横线
232         "nickname": /^[a-zA-Z0-9\_\-\u4e00-\u9fa5]+$/,
233         //只能输入汉字
234         "CC": /^[\u4e00-\u9fa5]+$/,
235         //用户名(4-30位字母开头的字符,支持数字、字母或下划线)
236         "username": /^[a-zA-Z]\w{3,29}$/,
237         //只能输入非零的正整数
238         "pInt": /^[1-9][0-9]*$/,
239         //有2位小数的正实数 -- 形如: 123.11 23.22 345.33 
240         "prNum": /^\+?[0-9]+\.\d{2}$/,
241         //同上,但可以取整数 -- 形如: 123 123.11 1234.45 
242         "prNum2": /^\+?[0-9]+\.\d{2}$/,
243         //只能输入0和非0开头的正整数
244         "pIntAndZero": /^(0|[1-9][0-9]*)$/,
245         //整数
246         "int": /^\d+$/,
247         //匹配小数或者整数
248         "floatOrInt": /^\d+(?:\.\d+)?$/,
249         //匹配小数
250         "floatN": /^(?:\d+\.\d+)$/
251     },
252 }

转载请注明出处!

 

转载于:https://www.cnblogs.com/Zell-Dinch/articles/3930353.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值