Skip to content

正则表达式的基础知识以及用法

1.创建正则表达式

let reg = new RegExp('abc')
//或者
let reg = /'abc'/

2.表达式的第二个参数

  • lastIndex 下一个匹配的索引(仅在使用g参数时可用)
  • source 模式文本
  • ignore 即'i' 是否忽略大小写
  • global 即'g' 是否开启全局匹配
  • multiline 即'm'是否开启多行
let reg = new RegExp('abc','g')
let reg = /'abc'/g

3.使用正则表达式

  • RegExp对象的exec和test()方法
  • String字符串的match()、replace()、search()、split()方法

3.1.RegExp的方法使用

  • exec()返回找到的值,并返回其位置信息数组。
  • test() 返回true or false
let str = 'abc eaf'
let reg = new RegExp('abc','g')
let res =  reg.exec(str)
//[ "abc",
  groups: undefined,
  index: 4,
  input: "www.abc.abc"]
  
reg.test(str) //true

3.2.String的方法使用

  • search() 返回第一个匹配到的索引。
  • match() 返回一个数组,元素是匹配到的值。
  • replace() 返回一个新的字符串(替换后的)。
  • split() 把字符串分割为字符串数组。
let str = 'www.abc.abc';
let reg = /abc/g
let res = str.search(reg) //4
let res = str.match(reg) // ['abc','abc']
let res = str.replace(reg,'d') //www.d.d
let res = str.split(reg) // ['www.','.',""]
console.log(res)

4.表达式符号介绍

  • 主要是 igm 和方括号

4.1.字母igm

  • i g m
let str = 'abcd'
let reg = /Abc/i
res.test(str) //true

4.2.表达式

  • [abc] 查找这个区间的值(给定区间)
  • [^abc] 查找不在这个区间的
  • [0-9] 查找0-9之间的数字
  • [a-z] 查找a-z区间的小写
  • [A-Z] 查找A-Z区间的大写
  • [A-z] 查找A-z区间

4.3.元字符

  • . 查找单个字符,除了换行和行结束符
  • \w 查找单词字符 (a-z、A-Z、0-9 以及_)
  • \W 查找非单词字符
  • \d 查找数字
  • \D 查找非数字
  • \s 查找空格
  • \S 查找非空格
  • \n 查找换行符
  • \uxxxx 查找unicode字符
let str = 'abcd'
let reg = /\w/g
let res = str.match(reg) // [a,b,c,d]

4.4.量词

  • n+ 任何包含至少一个n的字符串

  • n* 任何包含至少零个或多个n的字符串

  • n? 任何包含至少零个或一个n的字符串

  • n{X} 包含x个n的序列

  • n{X,Y} 包含至少x之多y的序列

  • ^n 匹配以n开头

  • n$ 以结尾

let str = 'wwwa.a2cddddd.af';
let reg = /a\w?/g  //['a','a2','af']
let reg = /a\w*/g  //['a',a2ddddd','af']
let reg = /a\w+/g  //['a2ddddd','af']

let res = str.match(reg)

5.常用的正则


//金额保留小数两位
let reg = /((^[1-9]\d*)|^0)(\.\d{0,2})?$/
//电话号码
let reg = /^1[3,4,5,7,8,9]\d{9}$/