深入理解ES6(2)--正则表达式

348 阅读1分钟

1.正则表达式字符串匹配

1.1 横向模糊匹配

正则表达式只有精准匹配时没有太大意义的,其强大之处在于模糊匹配

横向模糊匹配指长度不固定,ab{2,5}c 表示第一个字母时 a,最后一个字母是 c,中间有 2-5 个 c

var regex = /ab{2,5}c/g
var string = 'abc abbc abbbc abbbbc adddc'
console.log(string.match(regex)) // outPut: ['abbc', 'abbbc', 'abbbbc']

1.2 纵向模糊匹配

纵向模糊匹配指在具体某一位字符时,它可以有多种可能 /a[123]b/g 表示第二位可以说 1 2 3 中的某一个

var regexp = /a[123]b/g
var string = 'a0b a1b a2b a3b a4b'
console.log(string.match(regexp)) // outPut: ['a1b', 'a2b', 'a3b']

2.字符组

[abc] 叫字符组,表示匹配一个字符,

2.1 范围表示

[123456abcdefghijklm] 可以写成 [1-6a-fg-m]

2.2 排除字符组

[^abc] 表示a b c 以外的任意一个字符

2.3 常用简写

\d 就是 [0-9],表示是任意一个数字

\D 就是[ ^ 0-9],表示数字以外的任意字符

\w [0-9a-zA-Z_] 表示数字、大小写字母和下划线 (word)