zoukankan      html  css  js  c++  java
  • JavaScript中正则表达式(零宽度正回顾后发断言)

    零宽度正回顾后发断言


    今天在做邮箱email处理时,遇到个问题,在此记录一下,一个email的例子如下abc@qq.com,我想取得qq这个公司的名称,查找正则表达式,我想到了用零宽度正回顾后发断言,和零宽度正回顾先发断言的组合来实现

    代码如下:


    script type="text/javascript">
    var objStr="abc@qq.com";
    var reg=/(?<=\@)\w+(?=\.)/i;
    var arr=reg.exec(objStr);
    for(var i=0;i<arr.length;i++)
    {
    alert(arr[i]);
    }
    </script>


    可是当我执行代码时却遇到了问题,提示我有语法错误,说正则表达式有误,我百思不得其解,后来网上查看了一下,才发现原来是(?<=)零宽度正回顾后发断言在javascript中是不支持的,所以要得到qq这个字段就要想其他办法。
    我的办法是:


    script type="text/javascript">
    var objStr="abc@qq.com";
    var reg=/\@\w+(?=\.)/i;
    var arr=reg.exec(objStr);
    var regnext=/[^\@]\w+/i;
    var arr=regnext.exec(arr);
    for(var i=0;i<arr.length;i++)
    {
    alert(arr[i]);
    }
    </script>


    这样先通过获得@qq,在去掉@来获得,可以肯定的是,一定还有更好的办法来实现这个功能,如果您有好的建议,希望我能得到您的指点,不胜感激。

  • 相关阅读:
    DRF频率、分页、解析器、渲染器
    DRF的版本、认证、权限
    Django Rest Framework 视图和路由
    restfull规范
    DRF序列化
    类的super
    AngularJs自定义指令详解(1)
    AngularJs自定义指令详解(5)
    angular 自定义指令详解 Directive
    require js define 函数
  • 原文地址:https://www.cnblogs.com/itdreamfly/p/12871690.html
Copyright © 2011-2022 走看看