JavaScript正则表达式

正则表示式 = 模式 + 修饰符

修饰符

  • i 不区分大小写
  • m 多行匹配
  • g 全局匹配,即匹配到第一个结果后不会停止,而是继续向后查找匹配
  • u Unicode模式,将模式视为Unicode序列点的序列
  • s dotAll模式,匹配任何字符,包括\n

正则表达式创建方式

  • 字面量形式://.
  • new Regexp()

两种模式的区别:字面量形式提供的是编译模式,Regexp构造函数模式提供的是运行时模式,可以在其中使用变量。

一、知识点

  • 符号概念

    • 元字符
    • 集合
    • 边界
    • 数量
    • 断言
  • 对象实例属性
  • 对象实例方法

二、符号概念

1、元字符
  • . 匹配任意单个字符,行结束符除外
  • \d匹配任意阿拉伯数字,等价于[0-9]
  • \D不匹配任意阿拉伯数字,等价于[^0-9]
  • +表示一个或多个
  • \w匹配任意来自基础拉丁字母表中的字母、数字、下划线,等价于[a-zA-Z0-9]
  • \W不匹配任意来自基础拉丁字母表中的字母、数字、下划线,等价于[^a-zA-Z0-9]
  • \s匹配一个空白符
  • \S匹配非空白符
  • \n换行
  • \r回车
  • \t水平制表符
  • \v垂直制表符
  • \f匹配一个换页符
  • [\b]匹配一个退格符
  • \0 匹配一个NUL符,不要在此后面根小数点
  • \转义符,是具有特殊含义的字符直接输出
  • \xhh匹配编码为hh(两个十六进制数)的字符
  • \uhhhh匹配unicode值为hhhh(四个十六进制数)的字符
2、集合
  • [abc]匹配集合中的任意一个字符
  • [^abc]不匹配集合中任意一个字符(也叫反义字符组)
  • [^]匹配任意字符,比.更全面,它可以匹配\n等
2、边界
  • ^匹配字符串开始
  • $匹配字符串结束
  • \b单词分隔符
  • \B非单词分隔符
3、数量
  • x+ 一个或多个
  • x* 零个或多个
  • x+? 最小匹配
  • x*?最小匹配
  • x?零个或一个
  • x|y 匹配x或者y
  • x{n} 精确匹配n个
  • x{n,} 精确匹配最少n个
  • x{n,m} 精确匹配最少n个,最多m个
4、组
  • (x)匹配并且捕获x,这被称为捕获括号
  • \n反向引用,n是一个正数,指向正则表达式中第n个匹配的字符串
  • (?:x) 匹配x但不会捕获,用于匹配多个字符的字符串,效率比捕获模式高
5、断言
  • x(?=y) 只匹配后面紧跟y的x,不包含y
  • x(?!y) 只匹配后面没有y的x,不包含y
  • (?<=y)x 只匹配前面是y的x, 不包含y
  • (?
6、实例属性
  • source 正则对象的源模式文本
  • lastIndex 下次开始匹配的字符串索引位置
  • global 是否开启全局匹配
  • multiline 是否开启多行匹配
  • ignoreCase 是否开启忽略大小写
  • sticky 是否开启粘滞模式
7、实例方法
  • exec() 在目标字符串中执行一次匹配操作
  • test() 测试当前正则是否能匹配目标字符串
  • toSource()
  • toString()返回字面量字符串

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp

你可能感兴趣的:(JavaScript正则表达式)