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
js -- 正则表达式集合的更多相关文章
- JS正则表达式大全
转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...
- JS正则表达式大全(整理详细且实用)
JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...
- JS中集合对象(Array、Map、Set)及类数组对象的使用与对比
原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型, ...
- js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字
js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字 <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式
1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet' href='bootstrap-3.3.0-dist/dist/css ...
- js正则表达式图形化工具-rline
github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- js正则表达式replace里有变量的解决方法用到RegExp类
一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...
随机推荐
- Go 使用小记
1.不能使用在运行时计算的值实例化这样的数组. 而是使用make初始化具有所需长度的切片. db := ConnMysql() rows, err := db.Query("select r ...
- Uva1640(统计数字出现的次数)
题意: 统计两个整数a,b之间各个数字(0~9)出现的次数,如1024和1032,他们之间的数字有1024 1025 1026 1027 1028 1029 1030 1031 1032 总共有10个 ...
- Uva1639(概率期望/对数处理避免丢失精度)
Uva1639 题意: 有两个盒子各有n个糖果(n<=200000),每天随机选择一个:选第一个盒子的概率是p(0 ≤ p ≤ 1),第二个盒子的概率为1-p,然后吃掉其中的一颗.直到有一天,随 ...
- python3-cookbook笔记:第三章 数字日期和时间
python3-cookbook中每个小节以问题.解决方案和讨论三个部分探讨了Python3在某类问题中的最优解决方式,或者说是探讨Python3本身的数据结构.函数.类等特性在某类问题上如何更好地使 ...
- mysql 零基础 开始过程
2016-11-07 算是差不多是两个月的学习,我也马上要结课了.今天才勉强把mysql装上,之前还有因为用户权限的问题,以及用户为创建的问题.应该早点就把该准备的开发平台准备好,而不是在最后快考试了 ...
- ECMAScript基本语法——⑤运算符 比较运算符
><>=<======全等于 比较运算符 Java中只能比类型相同的,JavaScript没有限制比较方式 1.类型相同:直接比较 字符串:安装字典顺序比较.按位逐一比较直到比 ...
- 虚拟化技术xen的简介和安装
虚拟化技术的分类: 1,模拟:Emulation Qemu,PearPC,Bochs 2,完全虚拟化:Full Virtualization,Native Virtualization HVM ...
- jsonp 完成跨域请求注意事项
jsonp 不支持post方式请求跨域数据 可以使用get方式请求 !jsonp 不支持post方式请求跨域数据 可以使用get方式请求 !jsonp 不支持post方式请求跨域数据 可以使用get方 ...
- FatMouse's Speed HDU - 1160 最长上升序列, 线性DP
#include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> usi ...
- nginx proxy_set_header Host $host 和 proxy_set_header Host $http_host 的作用对比
转载自https://www.jianshu.com/p/7a8a7eb3707a 1.浏览器直接访问服务,获取到的 Host 包含浏览器请求的 IP 和端口 测试服务器,centos 7 sudo ...