簡體   English   中英

如何使用JavaScript有效地驗證我的URL?

[英]How to validate my URL efficienty using JavaScript?

我的正則表達式成功驗證了除http://www.google之外的許多網址

這是我在JSFiddle中的URL驗證器: http//jsfiddle.net/z23nZ/2/

它正確驗證了以下URL:

http://www.google.com給出了True

www.google.com給出了真實

http://www.rootsweb.ancestry.com/~mopoc/links.htm給出了True

http:// www. 假的

......但不是這個:

http://www.google給予True

在這種情況下返回true是不正確的。 我該如何驗證該案例?

我認為你需要簡化這一點。 那里有很多URL驗證RegExes,但作為練習,我將完成構建一個的思考過程。

  1. 首先,你需要匹配一個協議,如果有一個: /((http|ftp)s?:\\/\\/)?
  2. 然后匹配任何系列的非空白字符: \\S+
  3. 如果您嘗試從文本中選擇網址,則需要查找其是網址的跡象。 尋找點或斜線,然后是更多的非空白: [\\.\\/]\\S*/

現在把它們放在一起:

/(((http|ftp)s?:\/\/)|(\S+[\.\/]))\S*[^\s\.]*/

我猜你試圖尋找www.google是因為新TLD ...事實上,這樣的網址可能看起來像google ,所以任何單詞都可能是一個網址。 試圖提出一個匹配有效URL的全能正則表達式是不可能的,所以你最好只使用像上面那樣簡單的東西。

編輯:我已經卡住了| 如果人們選擇寫這樣的新URL,那么在協議部分和非空白 - 然后 - 點 - 或 - 斜杠部分之間匹配http://google

編輯2:查看評論以獲得下一個改進。 它確保google.com匹配, http://google匹配,甚至google/匹配,但不是a.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM