一、创建正则表达式:
(中括号表示范围,小括号表示或者(aa|bb),花括号表示匹配次数)
- 字面量方法
let reg = /(美国|日本)
- new方法
let reg = new RegExp('(美国|日本)')
二、修饰符:
- g 全局匹配
- i 忽略大小写
- ^ 开头匹配
- $ 结尾匹配
例:
let reg = /AAaa/i
三、常用表达式:
- [a-z] 查找任何从小写a到小写z的字符
- [A-Z] 查找任何从大写A到大写Z的字符
- [0-9] 查找任何从0到9的数字
- [abc] 查找任何括号内的任意字符abc
- [^abc] 查找除了括号内的任意字符abc
四、常用的字符:
( \ 表转义)
- \w 匹配数字、字母、下划线
- \W匹配非数字、字母、下划线
- \d匹配数字
- \D匹配非数字
- \s匹配空白字符
- \S匹配非空白字符
- \n匹配换行符
五、常用的限定符:
-
* 匹配前面的子表达式0次或多次 {0,++}
- +匹配前面的子表达式0次或多次 {1,++}
- ?匹配前面的子表达式0次或1次 {0,1}
- {n} 匹配n次
- {n,}匹配n或多次{n,++}
- {n,m}至少匹配n次最多匹配m次
六、使用正则表达式的方法:
- test()
- exec()
例:
// let reg = new RegExp('(美国|日本)','i')
// let reg = /(美国|日本)/i //美国或者日本
// let str = 'aa'
// console.log(reg.test(str))
// let reg = /^张/i;
// let str = '张飞'
// console.log(reg.test(str))
// let reg = /8$/i;
// let str = '154664646448'
// console.log(reg.test(str))
// let reg = /^[186]{6}$/i; //[]任选一个 {}长度
// let str = '186888'
// console.log(reg.test(str))
// let reg = /^(18|16|26){6}$/i;
// let str = '181626181818'
// console.log(reg.test(str))
// let reg = /^(\.|\[|\]|\{|\}|\|)$/i // \表转义
// let reg = /^[a-zA-Z]{1,5}$/i
// let reg = /^[a-zA-Z]{2,}$/i
// let reg = /^[a-zA-Z]?$/i //{0,1}
// let reg = /^[a-zA-Z]*$/i //{0,++}
let reg = /^[a-zA-Z]+$/i //{1,++}
let str = '186888'
console.log(reg.test(str))
// 验证手机号
// let reg = /^1(83|87|89)\d{8}$/
// let str = '18361786848'
// console.log(reg.test(str))
// 验证邮箱
// let reg = /^\w{0,20}@\w{0,10}\.(com|net|cn|org)/
// let str = 'zzz@qq.com'
// console.log(reg.test(str))