JavaScript学习总结-正则表达式

一、创建

1、方式

  • 字面量:var变量名 = / 表达式 / 模式修饰符
  • 函数构造:var变量名 = new RegExp(“表达式”,”模式修饰符”)

2、说明

a、表达式

  • 单个字符与数字
    • . : 匹配除换行符之外的任意字符
    • [a-z0-9] :匹配方括号中的任意字符
    • [^a-z0-9] :匹配不在方括号中的任意字符
    • \d:匹配数字
    • \D:匹配非数字
    • \w:匹配字母
    • \W:匹配非字母
  • 空白字符
    • \0:匹配null字符
    • \b:匹配空格字符
    • \f:匹配换页符
    • \n:匹配换行符
    • \r:匹配回车符
    • \s:匹配空白字符、空格、制表符或换行符
    • \S:匹配非空白字符
    • \t:匹配制表符
  • 定位符
    • ^:行首匹配
    • $:行尾匹配
    • \A:只匹配字符串的开始处
    • \b:匹配单词边界,词在[]内无效
    • \B:匹配非单词边界
    • \G:匹配当前搜索的开始位置
    • \Z:匹配字符串结束处或行尾
    • \z:只匹配字符串结束处
  • 限定符
    • x?:匹配0个或1x
    • x*:匹配0个或任意多个x
    • x+:匹配至少1x
    • x(m,n):匹配最少m个,最多nx
  • 分组
    • (?:x):匹配x但不记录匹配结果
    • x(?=y):当x后接y时匹配x
    • x(?!y):当x后不是y时匹配x
  • 引用
    • \1…\9:$1…$9,返回九个在模式匹配期间找到的、最近保存的部分
  • 或模式
    • x|y|z:匹配xzy

b、模式修饰符

  • g :全局模式,应用于所有字符串
  • i :区分大小写模式
  • m :多行匹配模式

二、属性

1、实例属性

  • global:检测是否设置g标记
  • ignoreCase:检测是否设置i标记
  • multiline:检测是否设置了m标记
  • lastIndex:开始检索下一个匹配项的字符位置,开始为0
  • source:返回正则表达式的字符串表示

2、构造函数属性

  • $_ input :返回最近一次匹配的字符串
  • $& lastMatch:返回最近一次的匹配项
  • $+ lastParen:返回最近一次匹配的捕获组
  • $` leftContext:返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符
  • $’ rightContext:返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符
  • $* multiline:检测表达式是否采用多行模式匹配m

三、方法

1、实例方法

a、exec

  • 功能:在字符串中执行匹配检索,返回结果数组
  • 参数:要应用模式匹配的字符串
  • 特性
    • 使用全局标记g:持续查找所有匹配项并返回
    • 不使用全局标记g:始终返回第一个匹配项信息
  • 执行过程
    • 检索字符串参数,获取正则表达式匹配文本
    • 找到匹配文本则返回一个数组
      • 0个元素:与整个模式匹配的字符串
      • 其他元素:与捕获组匹配的字符串
    • 否则返回null
  • 派生属性
    • index:匹配项在字符串中的位置
    • input:应用正则表达式的字符串
    • length:返回数组元素个数

b、test

  • 功能:在字符串中测试模式匹配,返回truefalse

2、字符串方法

  • match:找到一个或多个正则表达式的匹配
  • replace:替换与正则表达式匹配的子串
  • seach:检索与正则表达式相匹配的值
  • split:把字符串分割为字符串数组
坚持原创技术分享,您的支持将鼓励我继续创作!