亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試使用JavaScript驗證URL

嘗試使用JavaScript驗證URL

侃侃無極 2019-07-26 17:22:52
嘗試使用JavaScript驗證URL我想驗證一個URL并顯示消息。以下是我的代碼:$("#pageUrl").keydown(function(){         $(".status").show();         var url = $("#pageUrl").val();         if(isValidURL(url)){         $.ajax({             type: "POST",             url: "demo.php",             data: "pageUrl="+ url,             success: function(msg){                 if(msg == 1 ){                     $(".status").html('<img src="images/success.gif"/><span><strong>SiteID:</strong>12345678901234456</span>');                 }else{                     $(".status").html('<img src="images/failure.gif"/>');                 }             }             });             }else{                     $(".status").html('<img src="images/failure.gif"/>');             }     });function isValidURL(url){     var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;     if(RegExp.test(url)){         return true;     }else{         return false;     }}我的問題是,即使輸入正確的URL直到它與正則表達式匹配,它也會顯示錯誤消息,即使URL類似,它也會返回true "http://wwww"。我感謝你的建議。
查看完整描述

3 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

使用正則表達式解析URL是不切實際的。RFC1738規則的完整實現將導致極長的正則表達式(假設它甚至可能)。當然,您當前的表達式會失敗許多有效的URL,并傳遞無效的URL。

代替:

一個。使用實際遵循真實規則的正確URL解析器。(我不知道有一個用于JavaScript;它可能是矯枉過正的。你可以在服務器端做到這一點)。要么,

灣 只需刪除任何前導或尾隨空格,然后檢查它在前面有一個首選方案(通常是“http://”或“https://”),并保留它。要么,

C。嘗試使用URL并查看最后的內容,例如通過從服務器端發送HTTP HEAD請求。如果您收到404或連接錯誤,則可能是錯誤的。

即使網址類似于“ http:// wwww ”,它也會返回true 。

嗯,這確實是一個完全有效的URL。

如果要檢查“wwww”等主機名是否確實存在,則別無選擇,只能在DNS中查找。同樣,這將是服務器端代碼。


查看完整回答
反對 回復 2019-07-26
  • 3 回答
  • 0 關注
  • 678 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號