前端入门(三)正则表达式

190 阅读2分钟

三、正则表达式

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