蛙蛙推荐:用正则表达式搜索电子邮件

<!--
蛙蛙推荐:用正则表达式搜索电子邮件
提出问题:给定一个字符串,从中找出5个电子邮件,把其中的电子邮件用红色着重表示出来(或者是其它能着重显示的方式),
并且把这5个邮件保存成一个用逗号分割开的字符串,并打印出来.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="蛙蛙王子">
<META NAME="Keywords" CONTENT="蛙蛙池塘">
<META NAME="Description" CONTENT="呱呱">
<SCRIPT LANGUAGE="JScript">
function wawa_matchmail(str)
{
 /*
 *--------------- wawa_matchmail(str) -----------------
 * wawa_matchmail(str)
 * 功能:搜索一个字符串内符合邮件格式的子串,返回一个新串,包含5个搜索出来的邮件,并用逗号隔开.
 * 参数:str,字符串类型,要搜索的主串.
 * 实例:wawa_matchmail("only@sohu.com,ddd,only163.com")
 * author:天极.蛙蛙王子
 * update:2004-7-28 13:07
 *--------------- wawa_matchmail(str) -----------------
 */
 //我这里用的是string对象的match方法实现的.
 var re= //w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+/g;
 var m=MainString.match(re);
 var m1=""
 for(var i=0;i<m.length&&i<5;i++){
  m1+=m[i].fontcolor("blue")+",";
 }
 return (m1);
}
function wawa_replacemail(str)
{
   /*
 *--------------- wawa_replacemail(str) -----------------
 * wawa_replacemail(str)
 * 功能:搜索一个字符串内符合邮件格式的子串,生成一个新串,并用红色来表示邮件部分.
 * 参数:str,字符串类型,要搜索的主串.
 * 实例:wawa_replacemail("only@sohu.com,ddd,only163.com")
 * author:天极.蛙蛙王子
 * update:2004-7-28 13:07
 *--------------- wawa_replacemail(str) -----------------
    */
   //这里用的是政则表达式对象和RegExp来实现的.
   var s='';
   //var re = new RegExp("d(b+)(d)","ig");
   var re= //w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+/g;
   var j=0;
   while((arr = re.exec(str))!=null)
   {
 s += str.substring(j,(RegExp.lastIndex-RegExp.lastMatch.length));
 s += RegExp.lastMatch.fontcolor("red");
    j=RegExp.lastIndex
 //为了让大家熟悉正则表达式对象和RegExp对象的属性,我把它们都列了出来,如果你想学习它的用法,把注释去掉就可以看到很明显的输出了
    //s += "=======================================<br>";
    //s += "$1 returns: " + RegExp.$1 + "<br>";
    //s += "$2 returns: " + RegExp.$2 + "<br>";
    //s += "$3 returns: " + RegExp.$3 + "<br>";
    //s += "input returns : " + RegExp.input + "<br>";
    //s += "index returns : " + RegExp.index + "<br>";
    //s += "lastIndex returns : " + RegExp.lastIndex + "<br>";
    //s += "lastMatch returns: " + RegExp.lastMatch + "<br>";
    //s += "leftContext returns: " + RegExp.leftContext + "<br>";
    //s += "rightContext returns: " + RegExp.rightContext + "<br>";
    //s += "lastParen returns: " + RegExp.lastParen + "<br>";
    //s += "arr.index returns: " + arr.index + "<br>";
    //s += "arr.lastIndex returns: " + arr.lastIndex + "<br>";
    //s += "arr.input returns: " + arr.input + "<br>";
    //s += "re.lastIndex returns: " + re.lastIndex + "<br>";
    //s += "re.source returns: " + re.source + "<br>";
 //s += "=======================================<br>"; 
 }
 s += RegExp.rightContext;
   return(s);                            //Return results.
}

</SCRIPT>
</HEAD>
<BODY>
<script>
//下面定义主串
var  MainString="蛙蛙王子,onlytiancai@sohu.com  ,33@@@,三等分,guagua@wawa.cn";
MainString+="only@only.com,,,,ad,一二三四<a>abcd@abcd.com@abc</a>sdfsdf  feiyang@163.com";
MainString+="sdf呱呱sfd@msn.com.dsfsdf__#co,我是一颗秋天的树zhang@yushang.com.完了,哈哈";

//下面打印主串
document.write("原字符串:".bold()+"<br>"+MainString);

//下面打印搜索出来的5个邮件
document.write("<BR><BR>搜索出来的5个邮件:".bold()+"<br>"+wawa_matchmail(MainString));

//下面打印把邮件替换成红色的串
document.write("<BR><BR>替换为红色之后的串:".bold()+"<br>"+wawa_replacemail(MainString));
</script>
</BODY>
</HTML>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值