知识是需要系统的。就像js正则用了那么多次,却还是浑浑噩噩,迫切需要来一次整理,那么来吧!

基本知识

元字符

  • \d 匹配数字等于[0-9]
  • \w 匹配字母、数字、下划线、中文
  • \s 匹配任意空白字符
  • . 匹配除了换行符以外的任意字符
  • ^ 匹配开始
  • $ 匹配结束
  • \b 匹配开始或结束
//元字符的使用

/^\d$/ 匹配一个数字
/^\w/ 匹配开头是字母、数字、下划线或汉字
/^\s$/ 匹配一个空白符
/\bhi\b/匹配hi

重复字符

  • *匹配0次或多次
  • ?匹配0次或1次
    • 匹配1次或多次
  • {n}匹配n次
  • {m,}匹配最少m次
  • {n,m}匹配n到m次
//重复字符的使用
/^\d*/ 匹配数字0次或多次
/^\d?$/ 出现数字一个或0次
/^\d+$/ 匹配数字一次或多次
/^\d{3}$/ 数字出现三次890 078...
/^\d{3,}$/ 匹配最少3次
/^\d{3,5}$/ 匹配数字3-5次

转义字符

\  比如匹配*,而*在正则中匹配0个或多个,所以匹配*本身需要用 \*

在匹配域名的时候
ljmfitness.com /^ljmfitness\.com$/,在其中\.为转义字符
C:\windows 用 /^C:\\windows$/来匹配

反义

  • \W 匹配除字母、数字、下划线、汉字的字符

  • \S 匹配除空白符意外的任意字符

  • \D 匹配出数字外的任意字符

  • \B 匹配不是开始和结束的位置

  • [^x] 匹配除了x外的任意字符

  • [^xsa] 匹配除了xsa 这几个字符以外的任意字符

分支(类似于或)

/1234|abcd/ 这个表达式匹配含1234的字符串或者abcd的字符串

注:字符串从左到右验证,当字符串满足前一部分(1234)时,就不再验证后一部分了(abcd)

分组

当一种情况出现重复多次,我们可以选择分组
比如:/(22\.){3}/ 匹配含22.22.22.
/((2[0-4]\d|25[0-5]|[01]?\d\d)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d)/ 匹配ip地址

后向引用

/\b(\w+)\b\s+\1\b/ 这个匹配重复的单词go go
首先\w+ 匹配一个单词 \s空白字符 \1匹配\w (?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置 var str1 = "bedroom";
var str2 = "bedding";
var reBed = /(bed(?=room))///在我们捕获bed这个字符串时,抢先去看接下来的字符串是不是room
alert(reBed.test(str1));//true
alert(reBed.test(str2));//false var str1 = "bedroom";
var str2 = "bedding";
var reBed = /(bed(?!room))/ //要来它后面不能是room
alert(reBed.test(str1))//false
alert(reBed.test(str2))//true

常用正则整理

  • 手机号码

方法一:

<input type="text" id="demo" value=""/>
var str = document.getElementById('demo').value;
var reg = /^1[34578]\d{8}$/;
if(reg.test(str)){
alert('验证通过')
}else{
alert('验证不通过')
}

方法二:

var str = '23232434';
var reg = /^\d*$/
if(str.match(reg)){
console.info('验证通过')
}else{
console.info('验证不通过')
}
  • 邮箱
/^([a-zA-Z0-9]+[-|_|\.]?)*[a-zA-Z0-9]+@([A-Za-z0-9]+[-|_|\.]?)*[a-zA-Z0-9]+\.[A-Za-z]{2,3}$/;
  • 密码
//字母数字下划线组成6-20位
/^[a-zA-Z0-9_]{6,20}/
//验证密码同时包含字母数字特殊字符混合8-20位
/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,20}$/
  • 验证码
//四位数字
/^\d{4}$/
//四位数字或字母
/^[0-9a-zA-Z]{4}/
//四位字母
/^[a-zA-Z]{4}/
  • 验证身份证号
/^\d{15}|\d{17}[x|X|\d]$/
  • 验证中国企业名称(中文,或中文+小括号)
/^[\(|()]?[\u4e00-\u9fa5]+[\(|\(|\)|\)]?[\u4e00-\u9fa5]*[\(|\(|\)|\)]?[\u4e00-\u9fa5]+[\)\)]?$/

js正则基础总结和工作中常用验证规则的更多相关文章

  1. 工作中常用的js、jquery自定义扩展函数代码片段

    仅记录一些我工作中常用的自定义js函数. 1.获取URL请求参数 //根据URL获取Id function GetQueryString(name) { var reg = new RegExp(&q ...

  2. 【python正则】工作中常用的python正则代码

    工作中常用的一些正则代码: 01.用户名正则 import re # 4到16位(字母,数字,下划线,减号)if re.match(r'^[a-zA-Z0-9_-]{4,16}$', "ab ...

  3. 【基础】工作中常用的linux命令,经常会被面试官问到

    前言 面试经常会问到一些Linux操作命令,下面就工作中常用的和面试问的频率较高的命令做详细描述. 常用命令 修改密码:passwd 用户名 切换用户名:su 用户名 查看当前路径:pwd 调整路径: ...

  4. 工作中常用到的Java集合类有哪些?

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y Java集合是我认为在Java基础中最最重要的知 ...

  5. 工作中常用的Linux命令:mkdir命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6076075.html (转载请注明出处) 在Linux系统中,mkdir命令用来创建一个目录或一个级联目录. ...

  6. 工作中常用的Linux命令:crontab命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  7. 工作中常用的Linux命令:ipcs/ipcrm命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6057100.html (转载请注明出处) ipcs 1. 命令格式 ipcs [resource-option ...

  8. 工作中常用的Linux命令:find命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6056571.html (转载请注明出处) 1.命令格式 find [-H] [-L] [-P] [-D deb ...

  9. 工作中常用的QTP操作Excel函数

    前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...

随机推荐

  1. Use default arguments instead of short circuiting or conditionals使用默认实参代替短路和条件

  2. ubuntu环境下安装Redis

    1.命令行安装 sudo apt-get update sudo apt-get install redis-server 2.启动redis $redis-server :C Aug ::42.26 ...

  3. Composer安装php插件包中有哪些坑

    Composer安装php插件包中有哪些坑 一.总结 一句话总结:不要盲从扩展官方的composer安装命令,有时候也会出错 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 ...

  4. phalcon:整合官方多模块功能,方便多表查询

    phalcon:整合官方多模块功能,方便多表查询 项目分为: namespace Multiple\Backend; namespace Multiple\Frontend; 目录结构如下: publ ...

  5. Announcing the Release of ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 for VS2012

    The NuGet packages for ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 are now live o ...

  6. Python入门及安装

    简介 是用来编写应用程序的高级编程语言,"内置电池",哲学:简单优雅,尽量写容易看明白的代码,尽量写少的代码,适合干嘛:网络应用.网站.后台服务:日常些工具,如系统管理员需要的脚本 ...

  7. OSX 10.11 El Caption USB安装盘制作方法

    OSX 10.11 El Caption USB安装盘制作方法 官方在线下载地址:https://developer.apple.com/osx/download/ 1. 用磁盘工具将USB盘抹掉或者 ...

  8. 51nod 1102 单调栈

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 1102 面积最大的矩形 基准时间限制:1 秒 空间限制:1310 ...

  9. 项目管理理论与实践(5)——UML应用(下)

    本篇文章介绍UML的相关知识.参考<UML从入门到精通> 六.状态机视图 1. 概述 状态机视图通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为.状态是给定类的对象的一组属性值 ...

  10. Microsoft Visual Studio Ultimate 2013 RC 离线安装程序

    Microsoft Visual Studio Ultimate 2013 RC 离线安装程序 ☆ 微软官网地址:☆ http://www.microsoft.com/en-us/download/d ...