<!–
蛙蛙推荐:用正则表达式搜索电子邮件
提出问题:给定一个字符串,从中找出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>
