正则表达式

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