js -- 正则表达式集合

 

在做项目中,有时需要进行正则验证,但我又不太会正则表达式。

在一次又一次的寻找正则表达式的过程中,我最后总结了一个用于验证的函数,把我们常用的正则写在方法里,就不用每次都去网上找了。

可以根据需求进行修改,如果发现有什么错误的地方,麻烦你在评论处提出,以免误导别人,谢谢!谢谢!

/**
 * 正则验证
 * @param s     验证字符串
 * @param type  类型
 * @returns {boolean} true:验证通过
 */
function expValidate (s, type) { var objexp = null; switch (type) { case 'money': //金额格式,格式定义为带小数的正数,小数点后最多三位 objexp = /^([1-9]\d{0,9}|0)([.]?|(\.\d{1,2})?)$/; break; case 'numletter_': //英文字母和数字和下划线组成 objexp = /^[0-9a-zA-Z\_]+$/; break; case 'numletter': //英文字母和数字组成 objexp = /^[0-9a-zA-Z]+$/; break; case 'numletterchina': //汉字、字母、数字组成 objexp = /^[\u4E00-\u9FA5A-Za-z0-9_]+$/; break; case 'email': //邮件地址格式 objexp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; break; case 'tel': //固话格式 objexp = /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/; break; case 'mobile': //手机号码 objexp = /^1[34578]\d{9}$/; break; case 'decimal': //浮点数 objexp = /^(-?\d+)(\.\d+)?$/; break; case 'url': //网址 objexp = /(http:\/\/|https:\/\/){0,1}[\w\/\.\?\&\=]+/; break; case 'date': //日期 YYYY-MM-DD格式 objexp = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; break; case 'int': //整数 objexp = /^[0-9]*[1-9][0-9]*$/; break; case 'int+': //正整数包含0 objexp = /^\\d+$/; break; case 'int-': //负整数包含0 objexp = /^((-\\d+)|(0+))$/; break; case 'china': //中文 objexp = /^[\u0391-\uFFE5]+$/; break; case 'pwdSimple'://简单密码6-32位任意字符 objexp = /^.{6,32}$/; break; case 'pwdHard'://(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间)复杂密码 objexp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ /; break; case 'loginName'://登录名(6-18位字母或数字) objexp = /^[A-Za-z0-9]{6,18}$/; break; case 'postCode'://邮政编码 objexp = /^[0-9]\\d{5}$/; break; case 'fax'://传真 objexp = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; break; case 'checkCode'://4位验证码 objexp = /^[A-Za-z0-9]{4}$/; break; } return objexp.test(s); }

 

测试:

// 验证用户名
var loginName = 'admin888',
var bool = expValidate(loginName ,'loginName');
console.info(bool);

结果:
true

 

posted @ 2017-08-03 17:39  喵喵扑  阅读(416)  评论(0编辑  收藏  举报