如果用戶輸入了http://aaa.bbb.ccc
下面這個代碼將把他的輸入轉換成http://aaa.bbb.ccc
大家看看正則表達式有多厲害,呵呵。
<%
'調用這個函數來顯示成超聯結
Response.Write to_Html(s_message)
%>
<%
Function to_Html(s_string)
to_Html = Replace(s_string, """", """)
to_html = Replace(to_Html, "<", "<")
to_html = Replace(to_Html, ">", ">")
to_html = Replace(to_Html, vbcrlf, "<br>")
to_html = Replace(to_Html, "/<", "<")
to_html = Replace(to_Html, "/>", ">")
to_html = edit_hrefs(to_Html)
End Function
%>
<script language="Javascript1.2" runat=server>
function edit_hrefs(s_Html){
// 一個使用正則表達式的典范
// 轉換文本中所有的超聯結和電子郵件格式
s_str = new String(s_Html);
s_str = s_str.replace(/\bhttp\:\/\/www(\.[\w+\.\:\/\_]+)/gi,
"http\:\/\/¬¤¸$1");
s_str = s_str.replace(/\b(http\:\/\/\w+\.[\w+\.\:\/\_]+)/gi,
"<a href=\"$1\">$1<\/a>");
s_str = s_str.replace(/\b(www\.[\w+\.\:\/\_]+)/gi,
"<a href=\"$1http://$1\">$1</a>");
s_str = s_str.replace(/\bhttp\:\/\/¬¤¸(\.[\w+\.\:\/\_]+)/gi,
"<a href=\"http\:\/\/www$1\">http\:\/\/www$1</a>");
s_str = s_str.replace(/\b(\w+@[\w+\.?]*)/gi,
"<a href=\"mailto\:$1\">$1</a>");
return s_str;
}
</script>