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里正则表达式练手】}
推荐阅读
- 你到家了吗
- 闲杂“细雨”
- 村里的故事|村里的故事 --赵大头
- 事件代理
- 情节33.0
- 生命过客——第10章|生命过客——第10章 初为人母
- 你眼里的不公平,其实很公平
- 画廊百里若江南
- 抱着梦的无眠
- 数组常用方法一