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,在去掉@来获得,可以肯定的是,一定还有更好的办法来实现这个功能,如果您有好的建议,希望我能得到您的指点,不胜感激。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值