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

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

<!--

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

提出问题:给定一个字符串,从中找出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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航