正则表达式基本介绍
字面量写法
正则表达式字面量写法,又叫perl写法,因为JavaScript的表达式特性借鉴自perl。正则表达式字面量定义为包含在一堆斜杠/之间的字符,并且可以有三个模式符修正
g:
表示全局模式,既模式将被应用于所有字符串,而并非在发现第一个匹配项时立即停止
i
表示区分大小写模式,既在确定匹配项时忽略模式与字符串的大小写
m
表示多行模式,既在到达一行文本末尾时还会继续查找下一行中是否纯在与模式匹配的项
RegExp构造函数
和普通的内置对象一样,RegExp正则表达式对象也支持new RegExp构造函数的形势来创建正则。RegEXP构造函数接受两个参数:要匹配的字符串模式(pattern)和可选的模式修正符(flags)。
JavaScript的正则中的元字符
. 点号
单个任意字符(除回车
、换行
、行分隔符u2028和段分隔符u2029外)
[] 字符组
列出的单个任意字符
[^] 排除型字符组
未列出的单个任意字符
? 问好
匹配0次或者1次
* 星号
匹配0交或1次
+ 加号
匹配一次或多次
{a,b} 区间量词
匹配至少a次,最多b次;
^ 脱字符
行的起始位置
$ 美元符
行的结束位置
| 竖线
分隔两边的任意一个表达式
() 括号
限制多选结构的范围,标注量词作用的元素,为反向引用捕捉文本
1,2... 反向引用
匹配之前的第一、第二...组括号内的表达式匹配的文本
转义字符
转义字符(escape)表示为反斜线+字符的形势,共有三种方式
因为元字符有特殊的含义,所以无法直接匹配。如果要匹配它们本身,则需要在它们前面加上反斜杠 但实际上,并非14个字符串都需要转义,右方括号]和右花括号}可以不用写转义字符,写了也不算错
加非元字符,表示一些不能打印的特色字符