正则表达式

前言

这个学起来不难,倒是很容易忘记干脆写一次记录下来,方便以后查阅

什么是正则表达式

能让计算机读懂的字符串匹配规则

写法

var re=new RegExp('规则', '可选参数');例如:

var str = "lyichao";
var patt1 = /^[a-z]+$/;
document.write(str.match(patt1));
//输出结果:lyichao

规则中的字符

普通字符匹配

如:/a/匹配字符‘a’/a,b/ 匹配字符‘a,b’

转义字符匹配

字符 含义
\d 匹配一个数字,即0-9
\D 匹配一个非数字,即除了0-9
\w 匹配一个单词字符(字母、数字、下划线)
\W 匹配任何非单词字符。等价于[^A-Za-z0-9_]
\s 匹配一个空白符
\S 匹配一个非空白符
\b 匹配单词边界
\B 匹配非单词边界
. 匹配一个任意字符,除了换行符\n和回车符\r
\1 重复子项

量词

量词 含义
? 出现零次或一次(最多出现一次)
+ 出现一次或多次(至少出现一次)
* 出现零次或多次(任意次)
{n} 出现n次
{n,m} 出现n到m次
{n,} 至少出现n次

任意一个范围

范围 含义
[abc123] 匹配‘abc123’中的任意一个字符
[a-z0-9] 匹配a到z或者0到9中的任意一个字符

限制开头结尾

限定符 含义
^ 以紧挨的元素开头
$ 以紧挨的元素结尾

常用函数

  • test

    用法:正则.test(字符串) 匹配成功,就返回真,否则就返回假

  • search

    用法:字符串.search(正则) 匹配成功,返回位置,否则返回-1

  • match

    用法: 字符串.match(正则);匹配成功,就返回匹配成功的数组,否则就返回null

  • replace

    用法:字符串.replace(正则,新的字符串) 匹配成功的字符去替换新的字符

常用表达式

表达式 含义
^[a-z0-9_-]{5,15}$ 用户名(限制小写字母、数字和下划线,长度为6-15位)
^[A-Za-z0-9_\W]{6,}$ 密码(允许大小写字母、数字和下划线,长度限制至少6位)
^[a-z0-9_]{6,18}\@[a-z0-9]{2,}\.[a-z0-9]{2,}$ 邮箱(登录名允许使用6-18位字母、数字或下划线,主机名限制为小写字母和数字,域名限制为小写字母)
^[1][3-9][0-9]\d{8} 国内11位手机号码
^\d{17}[X\d]{1}$ 18位身份证
^[1-9]\d*$ 正整数
^-[1-9]\d*$ 负整数
^-?[1-9]\d*$ 整数

^\d{4}\-(0?[1-9]|1?[0-2])\-(0?[1-9]|1?[0-9]|2?[0-9]|3?[0-1])$ 年-月-日

你可能感兴趣的:(正则表达式)