<!-- 蛙蛙推薦:用正則表達式搜索電子郵件 提出問題:給定一個字符串,從中找出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>
|