三、正则表达式
3.1 Perl 风格
//JS 风格
let re = new RegExp('\\d+','g');
//Perl风格
let re = /\d+/g;
3.2 正则操作方法
- search 找出匹配的位置
let str = 'hello';
let re = /e/;
let res = str.search(re);
console.log(res);
//1
- match 找出匹配的东西
let str = 'hello'
let re = /e/;
let res = str.match (re);
console.log(res);
//[ 'e', index: 1, input: 'hello', groups: undefined ]
- replace 替换字符
let str = 'aAbBcC'
let res = str.replace(/b/ig,"a")
console.log(res)
//aAaacC
- split 切割
let str = 'ab#cd#ef'
let res = str.split(/#/g)
console.log(res)
//[ 'ab', 'cd', 'ef' ]
- test
let reg = /\d/
if(reg.test(/*被校验的值*/)){
//true
}else{
//false
}
//注意:一部分符合要求也会被校验通过,需要用到修饰符
3.3 操作选项
- i:忽略大小写
let str = 'A'
let reg = /a/i;
console.log(str.match(reg))
//[ 'A', index: 0, input: 'A', groups: undefined ]
- g:全局匹配
let str = 'hello elephant';
let reg = /e/g;
console.log(str.match(reg));
//[ 'e', 'e', 'e' ]
3.4 元字符 []
- 任意一个
let reg = /a[bcd]z/g;
let str1 = 'abz'
let str2 = 'abc'
let str3 = 'aaz'
let str4 = 'aaa'
let str5 = 'acz'
console.log(str1.match(reg))
console.log(str2.match(reg))
console.log(str3.match(reg))
console.log(str4.match(reg))
console.log(str5.match(reg))
//[ 'abz' ]
//null
//null
//null
//[ 'acz' ]
- 范围
let reg1 = /[a-z]/i //匹配字母
let reg2 = /[0-9]/ //匹配数字
let reg3 = /[a-z0-9]/ //匹配数字 字母
/*注意*/
let reg4 = /[1-99]/ //匹配1到9 或 9, 不是1-99
- 排除
let reg = /[^a-z]/ //排除[a-z]
3.5 转义
- \d:等于 [0-9]
let reg1 = /\d/ //匹配数字
let reg2 = /\d\d\d/ //匹配3位数字
-
\w:等于 [a-z0-9]
-
\s:所有空白字符
-
\D:排除 [0-9]
-
\W:排除 [a-z0-9]
-
. :任意字符
let reg = /.{1-9}/ //匹配任何字符1-9
- +:等于 {1,}
let reg4 = /\d+/ //匹配至少1位数字
- ?:等于 {0,1}
let reg = /\.jsx?/ //匹配 .js .jsx
3.6 量词
- {n}:n个
let reg3 = /\d{6}/ //匹配6位数字
- {n,m}:最少n个,最多m个
- {n,}:最少n个
- {,m}:最多m个
3.7 修饰符
- ^ 行头
let reg = /^https?\/\//
//匹配 http 或者 https
- $ 行尾
let reg = /^\d$/
if(reg.test(/*被校验的值*/)){
//true
}else{
//false
}
//从开头到结尾都要符合要求
- | 或
let reg = /\.(jpg|gif|png)$/i
//匹配jpg、gif、png 图片文件
let reg = /^(\d|[1-9]\d{1,3})$/
//匹配0-999