1.RegExp类中的方法
test()方法:检测正则表达式与指定的字符串是否匹配。
varreg =/([A-Z])([A-Z])\1\2/g;
console.log(reg.test('1234')); // 输出结果为:false
console.log(reg.test('abab')); // 输出结果为:false
console.log(reg.test('CDCD')); // 输出结果为:true
console.log(reg.test('EfEf')); // 输出结果为:false
匹配成功时,test()方法的返回值为true,否则返回false。
RegExp类中还有一些属性,用于检测当前正则对象使用的模式修饰符,以及指定下一次匹配的起始索引等。
检测正则对象的模式修饰符

varreg =/[\s+]/g;
console.log(reg.exec('h i'));
console.log(reg.lastIndex); // 输出结果为:2
console.log(reg.source); //输出结果为:[\s+]
console.log(reg.global); //输出结果为:true
console.log(reg.ignoreCase); // 输出结果为:false
console.log(reg.multiline); // 输出结果为:false
2.String类中的方法
search()方法:可以返回指定模式的子串在字符串首次出现的位置,相对于indexOf()方法来说功能更强大。
varstr ='123*abc.456';
console.log(str.search('.*')); //输出结果:0
console.log(str.search(/[\.\*]/)); // 输出结果:3
search()方法的参数是一个正则对象,如果传入一个非正则表达式对象,则会使用“new RegExp(传入的参数)”隐式地将其转换为正则表达式对象。
search()方法匹配失败后的返回值为-1。
split()方法:用于根据指定的分隔符将一个字符串分割成字符串数组,其分割后的字符串数组中不包括分隔符。
当分隔符不只一个时,需要定义正则对象才能够完成字符串的分割操作。
varstr ='test@123.com';
varreg =/[@\.]/;
varsplit_res = str.split(reg);
console.log(split_res); // 输出结果:(3)["test", "123", "com"]
按照字符串中的“@”和“.”两种分隔符进行分割。
split()方法的参数为正则表达式模式设置的分隔符,返回值是以数组形式保存的分割后的结果。
当字符串为空时,split()方法返回的是一个包含一个空字符串的数组“[“”]”,如果字符串和分隔符都是空字符串,则返回一个空数组“[]”。
varstr ='We are a family';
varreg =/\s/;
varsplit_res = str.split(reg, 2);
console.log(split_res); // 输出结果:(2)["We", "are"]
动手实践
分析表单项各项的限制条件:
① 用户名:长度4~12,英文大小写字母。
正则:/^[a-zA-Z]{4,12}$/。
② 密码:长度6~20,大小写字母、数字或下划线。
正则:/^\w{6,20}$/。
③ 确认密码:要求与密码框一样,且两次输入相同。
分析表单项各项的限制条件:
正则:RegExp(‘^’ + 密码框的值 + '$')
④ 手机号码:13、14、15、17、18开头的11位手机号。
正则:/^1[34578]\d{9}$/。
⑤ 邮箱:用户名@域名(域名后缀至少2个字符)。
正则:/^(\w+(\_|\-|\.)*)+@(\w+(\-)?)+(\.\w{2,})+$/。

