用正則表達式搜索電子郵件

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- 用正則表達式搜索電子郵件 (http://www.webasp.net/article/13/12148.htm)
-- 作者:未知
-- 發佈日期: 2004-08-10
<!--
蛙蛙推薦:用正則表達式搜索電子郵件
提出問題:給定一個字符串,從中找出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>



webasp.net