使用系統(tǒng)的或TTTAttributedLabel檢索網(wǎng)址

先立個(gè)flag,在檢測(cè)網(wǎng)址鏈接的過程中,不管是使用 NSDataDetector還是TTTAttributedLabel 做檢索網(wǎng)址,其實(shí)TTTAttributedLabel也是使用系統(tǒng)的檢索網(wǎng)址,先記錄一下發(fā)現(xiàn)的問題。
  • 如果網(wǎng)址是這樣的
    http://www.lxweimin.com下雨天的
    檢索的結(jié)果是不準(zhǔn)確的 ,結(jié)果檢索到的網(wǎng)址是http://www.lxweimin.com下雨天的

  • 如果網(wǎng)址是這樣的
    http://www.lxweimin.com/下雨天的
    檢索結(jié)果是一樣的,不準(zhǔn)確

  • 如果網(wǎng)址是這樣的去掉了協(xié)議頭,并且網(wǎng)址和文字中間沒有空格,
    www.lxweimin.com下雨天的

結(jié)果檢索到的網(wǎng)址是www.lxweimin.com 正確
  • 如果網(wǎng)址和文字中間#有#空格,有沒有協(xié)議頭都一樣
    http://www.lxweimin.com 下雨天的
結(jié)果檢索到的網(wǎng)址是http://www.lxweimin.com 正確

發(fā)現(xiàn)好多第三方,都是采用系統(tǒng)自帶的檢測(cè)網(wǎng)址或者電話號(hào)碼, 電話號(hào)碼還好點(diǎn)但是網(wǎng)址總是檢測(cè)不準(zhǔn)。

正確的姿勢(shì)應(yīng)該是這樣的:
檢測(cè)網(wǎng)址與電話:
// url鏈接的規(guī)則 NSString *urlPattern = @"((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(((http[s]{0,1}|ftp)://|)((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)"; NSString *phoneNumber =@"\\d{3}-\\d{8}|\\d{4}-\\d{7}|\\d{11}" ;
下一篇分析下如何利用正則檢索網(wǎng)址與電話號(hào)碼,表情,并且實(shí)現(xiàn)富文本的多行與完成顯示的切換。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容