2
這種情況還沒有問題。 我wan't檢測一個字符串中包含的任何鏈接,即HTTP,FTP,HTTPS的所有組合,和WWW,等使用正則表達式檢測字符串中的任何*鏈接?
基本上我想阻止字符串包含任何鏈接。
我目前使用的:
name.split(/\s+/).find_all { |u| u =~ /^https?:/ }).count
什麼是防止串的任何鏈接的最佳方式?
這種情況還沒有問題。 我wan't檢測一個字符串中包含的任何鏈接,即HTTP,FTP,HTTPS的所有組合,和WWW,等使用正則表達式檢測字符串中的任何*鏈接?
基本上我想阻止字符串包含任何鏈接。
我目前使用的:
name.split(/\s+/).find_all { |u| u =~ /^https?:/ }).count
什麼是防止串的任何鏈接的最佳方式?
我最終使用:
errors.add(:name, "Your name cannot contain links") if name.match /\b(?:(?:mailto:\S+|(?:https?|ftp|file):\/\/)?(?:\w+\.)+[a-z]{2,6})\b/
其中一期工程在幾乎所有的情況相當不錯。 從幾個來源在線攻擊
您是在談論HTML鏈接(標籤)還是隻是一個URL字符串? – MrYoshiji
分割空白,然後搜索,你沒有利用正則表達式的力量。這比較好:'如果名字=〜/ \ bhttps?:/'失敗,雖然這不會捕獲所有的鏈接情況。 Idk您的要求是什麼 - 「www.example.com」是否包含在內? 「example.com」如何?如果是這樣,這是無望的,因爲有太多的域名和維護將是一個噩夢 –
你可以用regexen做到這一點,但如果你的目標是阻止用戶顯示這樣的鏈接,他們將會找到一種方法來規避這種情況。例如:h t t p:// s t a c k o v e r f o o w。 com –