知识是需要系统的。就像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. java连接SQL数据库(JDBC)相关设置

    2016-06-14 一.SQL server中的相关设置(以sql server 2012 版本为例) 建立一个SQL server 身份认证的服务器登录名 首先启动SQL客户端,以windows身 ...

  2. this关键字详解

    在java中,编译器会为每个对象分配一个this关键字.在代码中使用关键字可以使代码更优雅.下面我就列举一下this关键字常见的几种场景. 1.this代表当前对象调用成员变量和方法,也是用的最多的地 ...

  3. 【转】ORACLE的数据类型

    原文;http://linjian004.bokee.com/3916067.html 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 ...

  4. WebAPI Post请求多参数处理方案

    contentType:"application/json"You need to use JSON.stringify method to convert it to JSON ...

  5. uva10910 背包

    https://vjudge.net/problem/UVA-10910 给出N,T,P,表示N门考试考了T分,问有多少种不同的得分方案,已知每门课的得分不低于P. 令f[i][j]表示考了i门得了j ...

  6. Shiro安全配置

    主要还是整合了本地ehcache,集群session管理过段时间放出 <?xml version="1.0" encoding="UTF-8"?> ...

  7. Java web应用开发技术

    Java web应用程序供用户通过浏览器发送请求,程序通过执行产生web页面,并将页面传递给客户机器上的浏览器,将得到的web页面呈现给用户. 一个完整的Java web应用程序通常由许多组件构成的, ...

  8. .NET和Docker ,比翼双飞

    DockerCon 2019本周将在旧金山举行 ,DockerCon 是从业者.贡献者.维护者.开发者和容器生态系统学习.网络和创新的一站式活动. .NET 团队博客发布了<一起使用.NET和D ...

  9. LeetCode OJ:Lowest Common Ancestor of a Binary Search Tree(最浅的公共祖先)

    Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...

  10. New Concept English there (60)

    33w/m 43 Punctuality is a necessary habit in all public affairs in civilized society. Without it, no ...