创建正则表达式
1. 直接创建,用两个正斜杠包裹
var reg = /test/;
2. 新建正则表达式对象,用字符串方式传值
var reg = new RegExp("test");
执行正则表达式
1. match() 返回查询到的结果
str.match(reg)
字符匹配
str.match(/1.3/g); // .可以代替任何(一个)字符(换行符除外)
str.match(/\d/g); // \d 返回数字 \D返回非数字
str.match(/\w/g); // \w 返回字母\W返回非字母
str.match(/\s/g); // \s 返回空格、制表符、换行 \S返回非空格
str.match(/\u/g); //\u+unicode返回unicode中的字符
str.match(/[abc]/g);
str.match(/[a-z]/g); // 返回[]中的字符
str.match(/[^0-9]/g); // 返回[]中非数字的字符
str.match(/[test|abc]/g); // 同时返回test&abc
str.match(/^test/g); // 取开头的test
str.match(/abc$/g); // 取结尾的abc
字符出现次数匹配
str.match(/abc*/g) // *出现零次或多次
str.match(/abc+/g) // *出现一次或多次
str.match(/abc?/g) // *出现零次或一次
str.match(/a{1,2}/g) // {x,y}内可以指定出现次数
2. exec() 返回匹配的结果
reg.exec(str);
3. test() 返回boolean,是否包括特定值
reg.test(str);
练习
电话号码验证
let phoneValid = /^1[3-9]\d{9}/g;
// ^1表示以1开头,[3-9]表示第二位数字的区间从3-9,\d{9}表示数字连续出现九次
console.log(phoneValid.test('13022005566'));
邮箱验证
let emailValid = /^[a-z A-Z 0-9 \-_\.]+@\w+\.\w{2,5}/g;
// ^[a-z A-Z 0-9 \-_\.]+ 表示以包含大小写字母数字-_.的字符开头且至少出现一次,包含@,至少出现一次的字母,.点号,2-5位的字母
console.log(emailValid.test('abc.ccc@aa.com'))