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('测试成功!');

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 12,077评论 0 99
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,672评论 19 139
  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 23,261评论 4 46
  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 9,481评论 0 13
  • 推荐几个正则表达式编辑器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1阅读 13,994评论 9 151