我有一個匹配URL的正則表達式。它不應該匹配以下內容。jQuery正則表達式不驗證
- www.yammercom
- http://www.yammer
- www.yammer..com
正則表達式
/^((((ht|f)tps?:\/\/)*(www\.)?|((ht|f)tps?:\/\/)(www\.)?)*)[a-z0-9-\.]+\.[a-z]{2,4}\/?([^\s<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/
我在我的正則表達式做什麼錯誤?
試試吧
我有一個匹配URL的正則表達式。它不應該匹配以下內容。jQuery正則表達式不驗證
正則表達式
/^((((ht|f)tps?:\/\/)*(www\.)?|((ht|f)tps?:\/\/)(www\.)?)*)[a-z0-9-\.]+\.[a-z]{2,4}\/?([^\s<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/
我在我的正則表達式做什麼錯誤?
試試吧
如果你需要一個正則表達式匹配一個網址,你可以在這裏看看:
http://mathiasbynens.be/demo/url-regex
,你會發現瘋長正則表達式大多數只會通過一半的測試。這應該告訴你爲什麼嘗試在1行正則表達式中驗證它不是一個好主意。
我認爲這將工作:
/^((((ht|f)tps?:\/\/)*(www\.)?|((ht|f)tps?:\/\/)(www\.)?)*)[a-z0-9\-\.]+\.[a-z]{2,4}\/?([^\s<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/
你必須花葶的-
http://rubular.com/r/fBGOLqS0jE請檢查這一點。它的錯誤 – Sam
後無間距的RE,事實證明,有一些問題...
你不需要使用*
的匹配協議,而最後的[]
對我來說沒有多大意義...(也許你可以更新你的問題。)
我的調整就在這裏。查看在線演示。 http://rubular.com/r/12J7ZRo4Qx
/^(
(https?|ftp)
:\/\/ #protocol
)? #is optional
(www\.)? #optional www
[-a-z0-9]+ #place - first so it means literally
\.
[a-z]{2,4} #trailing hostname
( #match pathname
\/ #a slash is required
[-a-z0-9]+ #same as hostname
)*
/x
的x
國旗代表自由間距,如在Perl。
無論如何,匹配url是相當普遍的。我的版本不好,也不符合防彈要求。這只是爲了演示。 如果你需要更多的固體稀土,請檢查這個http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/。
本書掌握正則表達式是另一個明確的指導
這個問題也有幫助。 http://stackoverflow.com/questions/1141848/regex-to-match-url –
^((((ht | f)tps?:\/\ /)*(www \。)?|((ht | f ?)TPS:\/\ /)(WWW \))*)[A-Z0-9 \ - \。] + \ [AZ] {2,4} \/?? $。?。它似乎工作。但第三個條件ID不僅滿足 – Sam
@Sam'[a-z0-9 \ - \。]'匹配不需要的。在'..com'中 –
你能提供給我們的自由空間RE單線RE真的很難讓我們看...... –
你搜索什麼與此:'([^\ s <> \#%「\,\ {\} \\ | \\\^\ [\]'] +)' – Manolo