功能
1.模式匹配
2.文本检索
3.替换
创建步骤
1.通过构造函数创建
var reg= new RegExp("表达式",[修饰符])
2.字面量创建
var reg=表达式/修饰符
功能(使用正则)
1.reg.test(obj)
a) 功能:用来检测obj是否符合正则表达式的规范
b) 返回值:匹配则返回true,不匹配则返回false
2.reg.exec(obj)
a) 功能: 用来检测obj是否符合正则表达式的规范
b) 返回值:如果匹配,返回数组,不匹配,返回null
说明:数组两个属性,index表示索引,input表示内容
常用的正则表达式规范:
方括号:
[abc] 查找括号内的任意字符
[^abc] 查找任何不在括号内的字符
[0-9] 查找0-9之间的数字
[a-z] 查找所有小写字母
[A-Z] 查找所有大写字母
[\u4E00-\u9FA5] 查找所有汉字
元字符
. 查找单个字符,除了换行符号和行结束符号
\w 查找所有字母数字下划线
(大写)\W 查找所有非字母数字下划线、
\d 查找所有数字
\D 查找所有非数
\s 空白符
\S 非空白符
\n 查找换行符
\r 回车符
\t 制表符(tab按键)
限定符号
^a 以a开头的所有字符
a$ 以a结尾的所有字符
重复符号
{n} 表示匹配前一项n次
{n,m} 表示匹n到m次
* 匹配前一项0到多次
? 匹配前一项0到1次
+ 匹配前一项1到多次
转义符号
\
将正则的符号,恢复其本质意义
需要转义的符号
[ ] { } ( ) . ? * + ^ $ / \
修饰符
i 不区分大小写
g 全局匹配
m 多行匹配
断言
断言的作用,可以自定义匹配规则的前后内容,以此达到判断是否包含某某某的目的
断言语法:(?=.*\d.*)
翻译:前面是单字符,可有可无,后面也是单字符,可有可无,中间必须是数字,没有位置要求
断言只是一个规则,并不会去定义长度
var reg = /^(?=.*[a-z].*)(?=.*[0-9].*)(?=.*[A-Z].*).{3,}$/
判断用户输入,必须包含大写+小写+数字
例:
var reg = /[abc]/;
var reg1 = /[^qwertyuiop]/;
var reg2 = /[0-9]/;
var reg3 = /[\u4E00-\u9FA5]/;
var reg4 = /[a-zA-Z0-9\u4E00-\u9FA5]/;
var reg5 = /./;
var reg6 = /\d/;
var reg7 = /^\d/;
var reg8 = /^[asd]$/;//以asd以内的任意符号开头
var reg9 = /[a]{3}/;//匹配a三次
var reg10 = /^[a]{2,5}$/;//a最少出现2次,最多出现5次
var reg11 = /[a]*/;
var reg12 = /^[a]?$/;
var reg13 = /[ ]*/;
var reg14 = /[1]+/;
var reg15 = /[\^]/;