0

重複の可能性:
文字列が有効な URL であるかどうかを確認するのに最適な正規表現は何ですか?

ユーザーから取得した URL を検証したかった... http://www.google.comのように、URL の最後の部分 (.com) を検証したかったのですが、Web で継続的に検索していますが、正しい答えが見つかりませんでした。私のコードは

function validate()
{
    var url = document.getElementById("url").value;

    var pattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;


    if (pattern.test(url)) {
        alert("Valid Url");
        return true;
    } 
        alert("Please Input Right URL");
        return false;

}
4

1 に答える 1

1
function ValidURL(str) {
   var pattern = new RegExp('^(https?:\/\/)?'+ // protocol
      '((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|'+ // domain name
      '((\d{1,3}\.){3}\d{1,3}))'+ // OR ip (v4) address
      '(\:\d+)?(\/[-a-z\d%_.~+]*)*'+ // port and path
      '(\\?[;&a-z\d%_.~+=-]*)?'+ // query string
      '(\#[-a-z\d_]*)?$','i'); // fragment locater
   if(!pattern.test(str)) {
      alert("Please enter a valid URL.");
      return false;
   } else {
      return true;
   }
}
ValidURL('google.com');

コンソールで確認してください

于 2012-12-11T12:19:22.750 に答える