本文接上篇,基础部分相对薄弱的同学请移步《JavaScript正则表达式学习笔记(一) - 理论基础》。上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaScript正则表达式的属性(注意是非标准属性,但很好用)。
一. 上文回顾本文会用到上篇文章部分内容,所以简单回顾下。
1.1 JavaScript正则表达式标志符g: 全局匹配,即找到所有匹配的。对应属性RegExp#global。
i: 忽略字母大小写。对应属性RegExp#ingoreCase。
m: 多行匹配,只影响^和$,二者变成行的概念,即行开头和行结尾。对应属性RegExp#multiline。
u: ES6新增。含义为“Unicode 模式”,用来正确处理大于\uFFFF的 Unicode 字符。也就是说,会正确处理四个字节的 UTF-16 编码。对应属性RegExp#unicode。
y: ES6新增。y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。对应属性RegExp#sticky。
1.2 适用于Javascript正则表达式的方法上篇文章《JavaScript正则表达式学习笔记(一) - 理论基础》介绍了适用于JavaScript正则表达式模式匹配的相关API共有6种,RexExp提供2个,String提供4个,如下:
1. RegExp#test // 适用于:验证、提取 2. RegExp#exec // 适用于:验证、提取 3. String#search // 适用于:验证、提取 4. String#match // 适用于:验证、提取 5. String#split // 适用于:切分 6. String#replace // 适用于:提取、替换