正则表达式--JSAPIS
前言
经过前边初识、位置、括号这三节的学习,应该说已经把正则语法学的七七八八了,但如果想要在JavaScript中用起来,还是需要对相关的API有所了解的
APIS简介
search
该api用于查找符合模式的起始位置,如果找不到,则返回-1
match
相比较search而言,match获取的信息更全些,如果匹配不到则返回null
exec
和match几乎是一样的,只不过一个部署在String一个部署在Regex上
test
专注于校验,返回true或false
split
根据指定的正则进行拆分,将以任何符合匹配的字符作为拆分点
replace
会根据匹配进行替换,不过默认只能替换一次,需要增加g参数匹配替换全部
APIS进阶
上一部分,已经对JavaScript种的正则相关的api做了简单了解,接下来对部分api做详细的拆分学习
隐式转换
search和match会将其参数作为正则看待,即使你的初衷不是这样的,如下,以search为例,由于.是正则语法,代表任意字符,故匹配一结果为0,即首位2的索引
修饰符g的影响
match的表达式使用了g修饰后,返回的结果将被格式化为结果数组,匹配不到则均为null
exec和test的表达式使用了g修饰符后,会将每次的匹配结果记录于lastIndex并作为下一次调用的起始位置,以test为例,最后一次将返回false(基于该特性,与while循环配合则能做到按步匹配)
严格校验
前一部分,我们提到说,test专注与校验,但那是存在性校验,有就行
如果想要切换为严格校验,则需要添加^+$
split的参数二
split可以指定参数二对结果数组进行省略
replace的参数二
参数二为字符时,可以引用以下特殊字符作变量替换,常用作位置调换操作
为函数时,则接收的参数依次为:$&、$1....$99、索引位置、文本本身
构造函数属性
RegExp["$_"]:最近一次目标字符串
RegExp["$&"]:最近一次匹配的文本
RegExp["$+"]:最近一次捕获的文本
RegExp["$`"]:目标字符串中RegExp["$&"]之前的文本
RegExp["$'"]:目标字符串中RegExp["$&"]之后的文本
正则实例属性
其中比较有用的是lastIndex和source,前者可以配合while循环进行按步匹配,后者则可以用于查看使用构造函数构造的结果是否符合预期