正则表达式 基础

  • 正则表达式 基础已关闭评论
  • 107 次浏览
  • A+
所属分类:Web前端
摘要

https://www.runoob.com/regexp 菜鸟教程


Tips: 字符串方法match()返回根据正则表达式匹配到的结果

1. 常用符号/链接标志

1.1 开头结尾标志

  • ^ 以...开头
  • $以...结尾
const reg1 = /^d/ // 以数字开头 const reg2 = /^[a-z]/ // 以小写字母开头 const reg3 = /d$/ // 以数字结尾 const reg4 = /[a-z]$/ // 以小写字母结尾  const str = '123abc' str.match(reg1) // '1' str.match(reg2) // '' str.match(reg3) // '' str.match(reg4) // 'c' 

1.2 多次匹配(限定符)

  • +号,匹配前面的字符1 ~ n次
  • *号,匹配前面的字符0 ~ n次
  • 号,匹配前面的字符0 ~ 1次
  • {n,},匹配前面的字符至少n次
  • {n,m},匹配前面的字符n ~ m次
const reg1 = /d/ // 匹配单个数字 const reg2 = /d+/ // 匹配1~n个数字 const reg3 = /d*/ // 匹配0~n个数字 const reg4 = /d?/ // 匹配0~1个数字 const reg5 = /d{2,}/g // 匹配至少2个数字(g全局匹配) const reg6 = /d{3,6}/g // 匹配3~6个数字  const str = '12345678abc98def7' str.match(reg1) // '1' str.match(reg2) // '12345678' str.match(reg3) // '12345678' str.match(reg4) // '1' str.match(reg5) // ['12345678', '98'] str.match(reg6) // '123456' 

2. 字符

2.1 普通字符

  • [abc]匹配[]中的所有字符
  • [^abc]匹配除去[^]中的所有字符
  • [A-Z]匹配某个区间的所有字符
  • .匹配除去换行符(n、r)的所有字符
  • w匹配字母、数字、下划线。等价于[A-Za-z0-9_]
const reg1 = /[ame]{3}/ // 匹配ame三个字符 const reg2 = /[^N]+/ // 匹配除去N的所有字符 const reg3 = /[a-z]+/ // 匹配a-z这个区间的所有字符 const reg4 = /.+/ // 匹配除去换行符(n、r)的所有字符 const reg5 = /w{3,6}/ // 匹配字母、数字、下划线。3 ~ 6个字符  const str = 'Name1-2_3' str.match(reg1) // 'ame' str.match(reg2) // 'ame1-2_3' str.match(reg3) // 'ame' str.match(reg4) // 'Name1-2_3' str.match(reg5) // 'Name1' 

2.2 非打印字符

  • d,匹配一个数字
  • n,匹配一个换行符
  • s,匹配任何空白字符
  • S,匹配任何非空白字符

3. 修饰符

  • 修饰符(flags)用于指定额外的匹配策略。
  • 语法:/pattern/flags

3.1 常用修饰符

  • i,ignore不区分大小写
  • g,global全局匹配
  • m,multi line多行匹配
const reg1 = /[a-z]+/i // 匹配字母,不区分大小写 const reg2 = /[A-Z]+/ // 匹配大写字母 const reg3 = /[A-Z]+/g // 匹配大写字母,且全局  const str = 'AncientChina' str.match(reg1) // 'AncientChina' str.match(reg2) // 'A' str.match(reg3) // ['A', 'C'] 

参考

https://www.runoob.com/regexp 菜鸟教程