作用
字符匹配
定义
var reg = /正则表达式/标志
标志
-
i
不区分大小写 例如:/a/ /a/i "ABC" -
g
全局 -
m
多行
使用方式
- 判断字符串是否匹配正则表达式
正则表达式.test(字符串)
- 从字符串中找出匹配正则表达式的字符串
正则表达式.exec(字符串)
语法
1. 字符表示(表示一个字符)
表示 | 含义 | 等价表示 |
---|---|---|
\w |
ASCII字符a-zA-Z_0-9 | [a-zA-Z_0-9] |
\W |
非ASCII字符 | [^a-zA-Z_0-9] |
\s |
空白 | |
\S |
非空白 | |
\d |
数字0-9 | [0-9] |
\D |
非数字 | [^0-9] |
[字符] |
匹配任意字符 | |
[ ^字符] |
匹配以外的任意字符 |
2. 重复表示
表示 | 含义 |
---|---|
{?} |
0次或者1次 |
{+} |
至少1次 |
{*} |
0次或者多次 |
{n} |
匹配n次 |
{n,} |
匹配至少n次 |
{n,m} |
匹配至少n次,至多m次 |
3.选择表示
表示 | 含义 |
---|---|
l |
选择 |
4.定位表示
表示 | 含义 |
---|---|
^ |
开始 |
$ |
结束 |
\b |
单词边界 |
\B |
非单词边界 |
5.分组
表示 | 含义 |
---|---|
() |
组合到一起 |
举例
常用正则表达式
第一个空格
\w*\s
行末空格
\s*$
金额校验,精确到2位小数
^[0-9]+(.[0-9]{2})?$
- 由数字、26个英文字母或下划线组成的字符串
^\w+$
- 校验E-Mail
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
- 只能输入中文
^[\u4e00-\u9fa5]{0,}$
- 15位身份证号码
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$
- 18位身份证号码
^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$
- 校验13、15、18开头的手机号
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$