javascript里正则表达式练手

例一:匹配邮箱
var re = /^[\w\.]+@\w+.(com|org)$/;
// 测试:
var
i,
success = true,
should_pass = ['someone@gmail.com', 'bill.gates@microsoft.com', 'tom@voyager.org', 'bob2015@163.com'],
should_fail = ['test#gmail.com', 'bill@microsoft', 'bill%gates@ms.com', '@voyager.org'];
for (i = 0; i < should_pass.length; i++) {
if (!re.test(should_pass[i])) {//测试正确的邮箱能否通过正则匹配,测试成功直接跳过,测试失败打印该邮箱,更新匹配规则
console.log('测试失败: ' + should_pass[i]);
success = false;
break;
}}
for (i = 0; i < should_fail.length; i++) {//测试错误的邮箱是不是真的匹配不上,如果都匹配不上,代表正则表达式正确,如果有一个错误的邮箱
if (re.test(should_fail[i])) {//可以匹配,则要修改正则式
console.log('测试失败: ' + should_fail[i]);
success = false;
break;
}}
if (success) {
console.log('测试通过!'); //前面两个循环判断如果都直接跳过,说明正则表达式无误,可以匹配正确邮箱
}\
例二:可以验证并提取出带名字的Email地址:
var re = /^<(\w+\s\w+.\w+)>\s(\w+@\w+.\w+)$/;
// 测试:
var r = re.exec(' tom@voyager.org');
if (r === null || r.toString() !== [' tom@voyager.org', 'Tom Paris', 'tom@voyager.org'].toString()) {
console.log('测试失败!'); //当匹配结果不为空,且匹配出的三个字符串满足【】内时,测试成功。出现三个结果是因为正则式里规定了两个匹
else {//配分组
console.log('测试成功!');
【javascript里正则表达式练手】}

    推荐阅读