- 创建正则的方式
- 使用函数 new RegExp("/u/g","i") 。它可接收两个参数,第一个参数是规则,第二个参数是修饰符。
- 使用字面量 var reg = /u/g
- 正则相关的一些方法
search():返回匹配到的字符下标开始位置,没有找到返回-1
match():字符串调用该方法,以数组形式返回找到的所有字符
exec():正则实例调用,用来捕获符合正则规则的字符,并以数组返回。如果是单次匹配,它与字符串的match方法相似。全局匹配的区别是它会显示每个匹配的详细信息。(只要字符串的可匹配内容没有匹配完,可以重复使用exec捕获,lastIndex记录了上一次匹配成功结束的位置。)
split():可以指定分割符为一个正则。比如str.split(/[/-]/)常用来分割日期。
matchAll():字符串调用该方法返回一个迭代器对象,可用for...of遍历
test():正则实例调用,用来验证字符串是否符合正则规则,返回值为布尔值。
replace():字符串调用,按照给定的正则表达式替换,返回替换后的字符串
- 正则元字符和量词符
- 贪婪模式和懒惰模式
贪婪模式包括:{m,n},{m,},?,*,+
非贪婪模式:在贪婪模式后面都加上一个?尽可能少匹配
- 在分组前面加上?:表示不捕获分组
- y匹配模式
y修饰符作用与g修饰符类似,也是全局匹配,后一次匹配从上次匹配成功的下一个位置开始,不同的是g修饰符只要在剩余位置存在匹配就行,而y修饰符会确保匹配从剩余的第一个位置开始。
- s修饰符:dotAll模式
因为.匹配的是除换行符外的所有单字符,有时候需要匹配任意单字符不是很方便,就用到了/s修饰符,使得.可以匹配任意单字符
- $符在正则替换中的作用。$1表示第一个原子组(第一个括号)
- $&使用表示匹配到的表达式的内容
- 断言匹配?=(可以理解为正则表达式中的条件语句,不在匹配结果中)
/后盾人(?=教程)/g:表示全局匹配后边是“教程”的“后盾人”。
- 后行断言?<=,理解为前面是什么
- ?!,理解为限制后面不是什么的断言
- ?<!,理解为限制前面不能是什么的断言
posted @
2020-09-28 19:19
小耳朵兔
阅读(
91)
评论()
收藏
举报