美文网首页
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