美文网首页
javascript里正则表达式练手

javascript里正则表达式练手

作者: Susy_ca6f | 来源:发表于2018-06-06 21:25 被阅读0次

例一:匹配邮箱

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里正则表达式练手

      本文链接:https://www.haomeiwen.com/subject/zruisftx.html