常用JavaScript正则表达式汇编与示例详解_正则表达式

来源:脚本之家  责任编辑:小易  

如果只是验证是否匹配,不取匹配项,用 test 方法即可。var pageIndex=document.getElementById("textfield").value;if![0-9]+$/.test(pageIndex)){alert("请输入正整数");return false;} else{alert("输入的是正整数");}如果非要要用 match,可以这样if!pageIndex.match(/^[0-9]+$/)){www.zgxue.com防采集请勿采集本网。

1.1 前言

目前收集整理了21个常用的javaScript正则表达式,其中包括用户名、密码强度、整数、数字、电子邮件地址(Email)、手机号码、身份证号、URL地址、 IP地址、 十六进制颜色、 日期、 微信号、车牌号、中文正则等。表单验证处理必备,赶紧收藏吧!

vara=\"#这里要替换#这里也要替换#789;a=a.replace(/[^#]*?g,\"百度\");

还会陆续加入新的正则进来,大家多提宝贵意见!

2.1 用户名正则

2.1.1 基本用户名正则

just google it!

在做用户注册时,都会用到用户名正则校验。

!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> charset=utf-8\"/> 无标题文档 javascript

定义基本用户名命名规则如下:

    最短4位,最长16位 {4,16} 可以包含小写大母 [a-z] 和大写字母 [A-Z] 可以包含数字 [0-9] 可以包含下划线 [ _ ] 和减号 [ - ] 首字母只能是大小写字母

    定义变量str来表示要匹配的字符串 var reg=weight=(\\d+),words=(\\w+)/g;var arrobj;每次匹配的临时存储数组 var arrval=new Array();最后结果的存储数组 while((arrobj=reg.exec(str))!null) { arrval.

正则表达式规则 1.正则表达式规则 1.1 普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是\"普通字符。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同

var pattern = /^[a-zA-Z][a-zA-Z0-9_-]{3,15}$/;//输出 trueconsole.log("ifat3 : "+pattern.test('ifat3'));//输出 trueconsole.log("Ifat3 : "+pattern.test('Ifat3'));//输出 trueconsole.log("ke30 : "+pattern.test('ke30'));//输出 falseconsole.log("30ke : "+pattern.test('30ke'));//输出 falseconsole.log("ke3 : "+pattern.test('ke3'));输出 falseconsole.log("ke30@ : "+pattern.test('ke30@'));//输出 falseconsole.log("ke30ke30ke30ke30ke30 : "+pattern.test('ke30ke30ke30ke30ke30'));

2.1.2 中文用户名正则

如果规则中加入允许中文用户名,则变更正则表达式如下:

var pattern = /^[a-zA-Z\u4E00-\u9FA5][a-zA-Z0-9\u4E00-\u9FA5_-]{3,15}$/;//输出 trueconsole.log("ifat3 : "+pattern.test('ifat3'));//输出 trueconsole.log("Ifat3 : "+pattern.test('Ifat3'));//输出 trueconsole.log("三十课毛瑞 : "+pattern.test('三十课毛瑞'));//输出 falseconsole.log("30ke : "+pattern.test('30ke'));//输出 falseconsole.log("ke3 : "+pattern.test('ke3'));//输出 falseconsole.log("ke30@ : "+pattern.test('ke30@')); //输出 falseconsole.log("ke30ke30ke30ke30ke30 : "+pattern.test('ke30ke30ke30ke30ke30'));

其中[\u4E00-\u9FA5]是汉字的正则匹配,包括基本汉字2万多个,其中\u4E00表示汉字“一”,具体请参见《汉字unicode编码范围》。

2.2 密码强度正则

//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;//输出 trueconsole.log("iFat3#:"+pPattern.test("iFat3#"));

上述正则表达式只能对用户密码强度进行基本的通过性判定,关于密码强度验证更多的内容可参见:基于规则评分的密码强度检测算法分析及实现。

2.3 数字相关正则

2.3.1 整数正则

//正整数正则var posPattern = /^\d+$/;//负整数正则var negPattern = /^-\d+$/;//整数正则var intPattern = /^-?\d+$/;//输出 trueconsole.log("30:"+posPattern.test("30"));//输出 trueconsole.log("-30:"+negPattern.test("-30"));//输出 trueconsole.log("-30:"+intPattern.test("-30"));

2.3.2 浮点数正则

//正浮点数正则var posPattern = /^\d*\.\d+$/;//负浮点数正则var negPattern = /^-\d*\.\d+$/;//两位小数正则var twoPattern = /^-?\d*\.\d{2}$/; //输出 trueconsole.log("30.2:"+posPattern.test("30.2"));//输出 true console.log("-30.2:"+negPattern.test("-30.2"));//输出 true console.log("-30.22:"+twoPattern.test("-30.22"));

2.3.3 整数浮点数正则

可以是整数也可以是浮点数

//正数正则var posPattern = /^\d*\.?\d+$/;//负数正则var negPattern = /^-\d*\.?\d+$/;//数字正则var numPattern = /^-?\d*\.?\d+$/;//输出 trueconsole.log("30.2:"+posPattern.test("30.2"));//输出 true console.log("-30.2:"+negPattern.test("-30.2"));//输出 true console.log("-30.2:"+numPattern.test("-30.2"));

2.4 日期正则

2.4.1 出生日期正则

var pattern = /^((19[2-9]\d{1})|(20((0[0-9])|(1[0-8]))))\-((0?[1-9])|(1[0-2]))\-((0?[1-9])|([1-2][0-9])|30|31)$/;//输出 trueconsole.log(pattern.test("1923-3-18"));//输出 trueconsole.log(pattern.test("1923-4-31"));//输出 trueconsole.log(pattern.test("1923-2-29"));//输出 trueconsole.log(pattern.test("2016-2-29"));

上述正则验证还不完善,主要是2,4,6,9,11月份的天数问题。

2.4.2 通用日期正则

//日期正则,复杂判定var dP2 = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;//输出 trueconsole.log(dP2.test("2017-02-11"));//输出 falseconsole.log(dP2.test("2017-15-11"));//输出 falseconsole.log(dP2.test("2017-02-29"));

2.5 Email正则

2.5.1 基本Email正则

var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;//输出 trueconsole.log(pattern.test('cn30ke@163.com'));//输出 trueconsole.log(pattern.test('ifat3@sina.com.cn'));//输出 trueconsole.log(pattern.test('ifat3.it@163.com'));//输出 trueconsole.log(pattern.test('ifat3_-.@30ke.cn'));//输出 falseconsole.log(pattern.test('ifat3@30ke.online'));//输出 falseconsole.log(pattern.test('毛瑞@30ke.cn'));

基本Email正则是最常用的验证方式,也适合大多数的应用场景。从以上测试可以看出,该表达式不支持.online及.store结尾的域名。如需兼容这类域名(大于4位),调整正则结尾{2,4}的限制部分即可(例:{2,8})。另一个问题是Email用户名不能包括中文。

2.5.2 中文名Email正则

根据前一正则中的问题,追加两条规则如下:

用户名可以包括中文 [\u4e00-\u9fa5]

域名结尾最长可为8位 {2,8}

var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;//输出 trueconsole.log(pattern.test('cn30ke@163.com'));//输出 trueconsole.log(pattern.test('ifat3@sina.com.cn'));//输出 trueconsole.log(pattern.test('ifat3.it@163.com'));//输出 trueconsole.log(pattern.test('ifat3_-.@30ke.cn'));//输出 trueconsole.log(pattern.test('ifat3@30ke.online'));//输出 trueconsole.log(pattern.test('毛瑞@30ke.cn'));

2.5.3 特定域名Email正则

在手机验证码出现之前,差不多邮箱验证是保证用户唯一性的唯一条件。而临时邮箱(也称10分钟邮箱或一次性邮箱)的出现,则使得邮箱验证及帐户激活这种机制失去了意义。而临时邮箱的地址是不可枚举的,我们只能才采取白名单的方式,只允许有限的邮箱域名通过验证。

var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|30ke.cn)$/;//输出 trueconsole.log(pattern.test('cn30ke@163.com'));//输出 falseconsole.log(pattern.test('ifat3@sina.com.cn'));//输出 trueconsole.log(pattern.test('ifat3.it@163.com'));//输出 trueconsole.log(pattern.test('ifat3_-.@30ke.cn'));//输出 falseconsole.log(pattern.test('ifat3@30ke.online'));//输出 falseconsole.log(pattern.test('毛瑞@30ke.cn'));

此方法虽然能保证验证安全性,但是如果白名单太长会造成模式字符串太长。这时可以将邮箱域名白名单写成数组,利用正则表达式做初步验证,用白名单做域名的二次验证。

常用域名白名单数组:

var domains= ["qq.com","163.com","vip.163.com","263.net","yeah.net","sohu.com","sina.cn","sina.com","eyou.com","gmail.com","hotmail.com"];

上述白名单只列举了常用的11种邮箱域名,大家可以根据需要适当补充或删减。

2.6 手机号码正则

//手机号正则var mPattern = /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$/;//输出 trueconsole.log(mPattern.test("18600000000"));

2.7 身份证号正则

//身份证号(18位)正则var cP = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;//输出 trueconsole.log(cP.test("11010519880605371X"));

上述正则只能对身份证号进行基本的通过性判定,关于公民身份号码判定的更多内容可参见文档:公民身份号码正确性判定及程序实现

2.8 URL正则

//URL正则var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;//输出 trueconsole.log(urlP.test(http://30ke.cn));

2.9 IP地址

2.9.1 IPv4地址正则

//ipv4地址正则var ipP = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;//输出 trueconsole.log(ipP.test("115.28.47.26"));

2.9.2 IPv6地址正则

//IPV6正则var pattern = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/;//输出 trueconsole.log(pattern.test("fe80:0000:0000:0000:0204:61ff:fe9d:f156"));

2.10 十六进制颜色正则

//RGB Hex颜色正则var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;//输出 trueconsole.log(cPattern.test("#b8b8b8"));

2.11 QQ号码正则

//QQ号正则,5至11位var qqPattern = /^[1-9][0-9]{4,10}$/;//输出 trueconsole.log(qqPattern.test("65974040"));

2.12 微信号正则

//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;//输出 trueconsole.log(wxPattern.test("RuilongMao"));

2.13 车牌号正则

//车牌号正则var cPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;//输出 trueconsole.log(cPattern.test("京K39006"));

2.14 包含中文正则

//包含中文正则var cnPattern = /[\u4E00-\u9FA5]/;//输出 trueconsole.log(cnPattern.test("30课"));

总结

以上所述是小编给大家介绍的常用JavaScript正则表达式汇编与示例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对真格学网网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

正则表达式\\b([a-z]+)\\1\\b/gi 一个单词连续出现的位置(\\w+):\\/\\/([^/:]+)(:\\d*)?([^#]*)/将一个URL解析为协议、域、端口及相对路径Chapter|Section)[1-9][0-9]{0,1}$/定位章节的位置[-a-z]/A至z共26个字母再加一个-号。ter\\b/可匹配chapter,而不能terminal\\Bapt/可匹配chapter,而不能aptitudeWindows?95|98|NT)/可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 汇编语言 and和or逻辑运算指令的实现
  • 汇编语言编译环境搭建过程
  • windows10下利用dosbox和masm32搭建汇编语言开发环境
  • 详解汇编语言rcl(带进位循环左移)和rcr(带进位循环右移)指令
  • 汇编语言xor指令:对两个操作数进行逻辑(按位)异或操作(推荐)
  • 汇编语言 输入10个数排序并输出的实现
  • 汇编语言之寄存器详解
  • 汇编语言环境搭建软件与教程
  • 汇编语言入门教程阮一峰版
  • 汇编语言aad,daa,das用法解析
  • 正则表达式中不区分大小写的写法
  • python 正则表达式 反斜杠(/)的麻烦和陷阱
  • js正则表达式test()和exec()用法实例
  • 正则中的圆括号()的用途详解
  • js正则表达式之exec方法讲解
  • c# 校验帮助类正则表达式
  • js正则表达式之regexp对象属性lastindex,lastmatch,lastparen,
  • 正则基础之 环视 lookaround
  • ios 中使用正则表达式判断身份证格式及银行卡号格式是否正确(推荐
  • jscript 8.0 正则表达式语法
  • 求各种正确的javascript正则表达式,谢谢
  • javascript 正则表达式 if 判断
  • javascript正则表达式获取两个字符之间的内容
  • 一个超简单的javascript正则表达式
  • javascript 正则表达式 获取内容
  • 谁推荐我一些javascript正则表达式的学习资料啊?
  • 谁能帮我写一个JavaScript的正则表达式?高分!
  • javascript 正则表达式
  • javascript中的正则表达式有什么规范
  • javascript正则表达式
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页正则表达式汇编语言 and和or逻辑运算指令的实现汇编语言编译环境搭建过程windows10下利用dosbox和masm32搭建汇编语言开发环境详解汇编语言rcl(带进位循环左移)和rcr(带进位循环右移)指令汇编语言xor指令:对两个操作数进行逻辑(按位)异或操作(推荐)汇编语言 输入10个数排序并输出的实现汇编语言之寄存器详解汇编语言环境搭建软件与教程汇编语言入门教程阮一峰版汇编语言aad,daa,das用法解析正则表达式中不区分大小写的写法python 正则表达式 反斜杠(/)的麻烦和陷阱js正则表达式test()和exec()用法实例正则中的圆括号()的用途详解js正则表达式之exec方法讲解正则基础之 环视 lookaroundios 中使用正则表达式判断身份证格式及银行卡号格式是否正确(推荐jscript 8.0 正则表达式语法java 正则表达式详解比较正宗的验证邮箱的正则表达式正则表达式匹配任意字符(包括换最新手机号码、电话号码正则表达javascript 手机号码正则表达式验js利用正则配合replace替换指定字正则表达式匹配不包含某些字符串正则中需要转义的特殊字符小结js正则函数match、exec、test、s最全的常用正则表达式大全——包正则表达式验证ipv4地址功能实例分析匹配移动/联通/电信手机号码正则表达式小文本框输入限制 [大全]正则表达式与html5新元素浅谈正则速记法的技巧比较全面的c 、java、javascript中的正则asp.net 正则表达式[经常用的到]re模块的正则匹配的表达式详解密码强度检测函数(正则)正则表达式 特殊字符应用分析[简单详细入
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved