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

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

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

/**
* 正则验证
* @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

js -- 正则表达式集合的更多相关文章

  1. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  2. JS正则表达式大全(整理详细且实用)

    JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...

  3. JS中集合对象(Array、Map、Set)及类数组对象的使用与对比

    原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型, ...

  4. js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字

    js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字 <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  5. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  6. 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式

    1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet'  href='bootstrap-3.3.0-dist/dist/css ...

  7. js正则表达式图形化工具-rline

    github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...

  8. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  9. js正则表达式replace里有变量的解决方法用到RegExp类

    一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...

随机推荐

  1. Centos 7 下安装 samba 服务

    yum install samba 配置文件在:/etc/samba/smb.conf [global] #添加下面这句 map to guest = Bad User #这个选项是保证匿名访问! # ...

  2. 每个Web开发者都应该知道的SOLID原则

    面向对象的编程并不能防止难以理解或不可维护的程序.因此,Robert C. Martin 制定了五项指导原则,使开发人员很容易创建出可读性强且可维护的程序.这五项原则被称为 S.O.L.I.D 原则. ...

  3. @Autowired、@Resource、@Qualifier区别

    @Autowired 1.属于spring的注解,如果不想和Spring耦合的太紧,就不推荐使用. 2.默认情况下,要求依赖对象必须存在,不能为null.如果允许为空,那么设置属性值required为 ...

  4. 嵊州D5T2 折纸 folding

    折纸 folding [问题描述] 在非常紧张的 NOIP 考试中,有人喜欢啃指甲,有人喜欢转铅笔,有人喜欢撕 纸条,……而小 x 喜欢迷折纸. 现有一个 W * H 的矩形纸张,监考老师想知道,小 ...

  5. 1.(group by)如何让group by分组后,每组中的所有数据都显示出来

    问题描述:表如下,如何让这个表按device_id这个字段分组,且组中的每条数据都查寻出来?(假如说这个表名为:devicedata) 错误答案:select * from devicedata GR ...

  6. 技术之心 | 云信和TA们携手打响防疫战

      1月27日,教育部发布<关于2020年春季学期延期开学的通知>,各地高等院校.中小学.幼儿园纷纷推迟开学.疫情当前,学生们的鼠年寒假变得无比漫长. 网易云信众多教育客户以行动践行教育的 ...

  7. H3C IP地址配置

    一.IP地址分类 分配地址就是给每个连接到IPv4网络上的设备分配的一个网络唯一的地址.IP地址长度为32比特,通常采用点分十进制方式表示,即每个IP地址被表示为以小数点隔开的4个十进制整数,每个整数 ...

  8. 0级搭建类006-Oracle Solaris 安装 (10.13) 公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  9. 野路子码农系列(8)我终于大致搞懂了GBDT

    由于下下周要在组里介绍一个算法,最近开始提前准备,当初非常自信地写下自己最喜欢的GBDT,但随着逐步深入,发现其实自己对这个算法的细节并不是非常了解,了解的只是一些面试题的答案而已……(既然没有深入了 ...

  10. C++->二进制文件流的输入输出

    C++->文件流的输入输出 1.书本里以“简单事务处理”为例子,解析二进制输入输出文件流的read和write函数的使用,以及输入输出文件流 过程中指针的捕获.定位,文件流位置的判断,二进制文件 ...