主題: [求助]關於超連結代碼的判斷 [打印本頁]
發表人:
ROACH 時間: 2006-3-23 08:35 PM 主題: [求助]關於超連結代碼的判斷
想問一下
最近我用JSP寫一個企業入口網站討論區
想問一下一般討論區那種判斷超連結的代碼應該怎做呢??
我寫的一個副程式
去判斷 http: 開頭 以及 空白鍵跟ENTER鍵結尾的字元
前面加上 <a href="的字元
這樣就變成完整的超連結語法
這樣判斷出來後~再把字串丟回去~
然後接著
在去判斷 [url]的字元~
也把[url]改成<a href=
結果@@這樣卻變成
<a href="<a href="
哇勒!!
想問一下!一般的討論區關於這邊是如何判斷的呢????
還是有其他作法呢??
因為又要考慮使用者沒有用[url]直接貼網址上來
又要考慮到如果使用者用[url]的話.....
發表人:
Vic 時間: 2006-3-24 11:15 AM
都是通過regular expression來做的.
preg_replace是php下reg exp的功能, R大找找jsp下的相關功能.
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\-]+\.[\w\-.\~]+(?:/[^ \"\t\n\r<]*)?)#is", "\\1<a href=\"http://\\2\" target=\"_blank\"><font color=\"Blue\">\\2</font</a>", $ret);
有關bbcode那些reg. 看以下的部份
$searcharray['bbcode_regexp'] = array(
"/\[url\]\s*(www.|https?:\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/){1}([^\[\"']+?)\s*\[\/url\]/ie",
"/\[url=www.([^\[\"']+?)\](.+?)\[\/url\]/is",
"/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",
);
$replacearray['bbcode_regexp'] = array(
"<a href=\"http://www.\\1\" target=\"_blank\"><font color=\"blue\">\\2</font></a>",
"<a href=\"\\1://\\2\" target=\"_blank\"><font color=\"blue\">\\3</font></a>",
);
bbcode的match於link match比較好.
發表人:
soupjvc999 時間: 2006-4-6 01:10 AM
買本速查手冊一起沉淪吧
每個語言的 regular expression 都有小差異
又無法強記 還是靠小本的來幫助
中文
http://tlsj.tenlong.com.tw/WebMo ... 94494&sid=25094
英文
http://tlsj.tenlong.com.tw/WebMo ... 0415X&sid=17794
發表人:
Vic 時間: 2006-4-6 11:21 PM
有2個regular expression的網站推薦一下
http://www.regular-expressions.info/tutorial.html
http://regexlib.com/
發表人:
ROACH 時間: 2006-4-7 12:14 AM
哈!!還是不了解~算了~~
偶也是第一次看到原來有regular expression這種東西~~
稍微去網路上查一下相關的資訊~
才發現!!!!越來越亂的~唉~
找個時間來研究一下好了~
嘿嘿~
Vic熊大您來個簡易教學好了~~
歡迎光臨 TWed2k (http://twed2k.org/) |
Powered by Discuz! 4.1.0 |