正则表达式的模式匹配
1、正则表达式(Regular Expression -RegExp)是一个描述字符模式的对象,JS中的RegExp类表示正则表达式,可以进行模式匹配和文本检索以及替换等功能,如表单验证、页面输出格式化等等
2、创建正则表达式RegExp对象
直接量语法:/hello/ig
关键字:new RegExp('hello','ig')
3、RegExp的属性
global(只读):判断是否具有g修饰符(全局)
ignoreCase(只读):是否具有i修饰符(忽略大小写)
multiline(只读):多行
lastIndex:上次匹配索引
source(只读):正则所使用文本,
$1...$9:(全局属性)代表之前匹配得到的文本
4、RegExp方法
test(str):检测str是否匹配相关的正则表达式,返回布尔值
exec(str):检索str是否匹配相关的正则表达式,返回找到的值,并确定其位置;影响lastIndex的值
compile():编译正则表达式,将pattern转换为内部的格式,加快执行速度
和正则配合使用的字符串方法
1、替换字符串replace(substr/regexp,replaceStr)
原始字符串内容不会改变
2、匹配:match(substr/regexp)
可在字符串内检索指定的值,或找到一个或多个与正则表达式匹配的子串
若无匹配返回null
若有匹配返回数组,当仅有一个匹配项,第一项为匹配子串,索引'index'指出匹配的位置,索引'input'指出要检测的字符串;若有多项匹配则数组由所有匹配项组成
3、查找:search(str/regexp)
返回第一个匹配子串的起始位置
此方法不支持全局匹配,将忽略标识符g
4、定义正则表达式
a、普通字符 \ipod\
b、需要使用转义符的字符: . \/ * ? + [ ( ] ) { } ^ $ | /\.\?\*/
c、匹配字符集
[abc] 匹配指定集合内任一个字符:/[abc123]/
[^abc] 匹配不再指定集合内的任意字符
[0-9] 指定范围,匹配数字
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
[A-z] 匹配大写A到小写z之间所有字符:A-Z[\]^_`a-z
d、预定义字符集
\d 匹配一个数字:/\d/ 等价于/[0-9]/
\D 匹配一个非数字:/\D/等价于/[^0-9]/
\w匹配一个数字/字母/下划线 等价于/[A-Za-z0-9_]/
\W匹配一个非数字/字母/下划线 等价于
/[^A-Za-z0-9_]/
\s 匹配一个空白字符(space),/\s/等价于/[ \n\r\t\v\f]/
\S 匹配一个非空白符/\S/等价于/[^\n\r\t\v\f]/
. 匹配除了回车和换行外的任何单个字符,/./等价于/[^\n\r]/
e、数量词
n? 匹配零次或一次字符n
n*:匹配零次或多次字符n >=0次
n+:匹配一次货多次字符n >=1次
n{x}:匹配字符n出现x次
n{x,y}:匹配字符n出现x到y次
n{x,}:匹配字符n出现>=x次
f、选择和分组
exp1|exp2 使用|进行条件选择/ex|Ex|post|Post/
(exp1)使用()指定分组---自表达式
g、指定匹配位置
^ 匹配字符串开头 /^a/
$ 匹配字符串的结尾
\b匹配单词边界
\B:匹配非单词边界
?=x 正向前瞻,匹配其后紧接着x的字符串
?!=x 后面不能有x
网友评论