0

jQuery 検証プラグインを使用して URL を検証しています。jquery 検証プラグインには、url ルールが組み込まれています。jQuery 検証プラグイン

JavaScript は次のとおりです。

    $( "#form").validate({
    rules: {
        field: {
            required: true,
            url: true
        }
    }
   });

私の要件は

  1. jQueryバリデーションプラグインはちゃんとバリデーションしているので必要なので変更不可
  2. それに加えて、www.xxx.com を渡す必要があります。検証の前に http:// または https:// を追加するためです。www.xxx.com を渡すには正規表現が必要です。追加できる正規表現は、他の jQuery 検証プラグインの動作に影響を与えるべきではありません。
4

4 に答える 4

0

HTML は次のとおりです。

<!DOCTYPE html>
<html>
<head>
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
   <meta charset=utf-8 />
   <title>JS Bin</title>
</head>
<body>
   <textarea type="text" id="url"></textarea>
   <br/>
   <input type="button" value="test" id="btn" />
   <div id="result" />
</body>
</html>

JavaScript :

$("#btn").click(function(){
var url = $("#url").val();
console.log(url);
if(checkURL(url)){
  $("#result").text("All ok");
}
else{
  $("#result").text("Not ok !");
}
});

function checkURL(value) {
var urlregex = new RegExp("^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&amp;%\$#\=~_\-]+))*$");
if (urlregex.test(value)) {
    return (true);
}
return (false);
} 

JSFIDDLE

于 2013-10-15T12:17:42.150 に答える
0

この場合、おそらく独自の検証メソッドを作成する必要があります。

http://jqueryvalidation.org/jQuery.validator.addMethod

function my_valid_url(url)
{
    // regular expression stolen from Anup's answer, hopefully it's correct. :)
    return ( url.match(/^(ht|f)tps?:\/\/[a-z0-9-\.]+\.[a-z]{2,4}\/?([^\s<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/)
          || url.match(/^[a-z0-9-\.]+\.[a-z]{2,4}\/?([^\s<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/) );
}

$.validator.addMethod('my_url', my_valid_url);
于 2013-10-15T12:07:44.010 に答える
0

あなたのリンクは完璧に機能しています。次のようなURLを追加/送信するだけです:

http://www.google.com

URLを個別に検証する場合は、次を使用できます。

関数makeUrl(URL){

var str = url;
str = str.split("//");
if(str[1] == undefined){
   str = "http://"+str;
   is_valid_url(str);
}
else{
   str = str;
   is_valid_url(str);
}
}
function is_valid_url(url)
    {
         return url.match(/^(ht|f)tps?:\/\/[a-z0-9-\.]+\.[a-z]{2,4}\/?([^\s<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/);
    }

IT は、URL 検証メソッドに最適なリンクです。確認してください

于 2013-10-15T12:03:35.663 に答える
-1

この検証は正しく機能します。文字列を使用しているだけです。検証してみるhttp://www.xxx.com

だけの場合、URL を正しく取得していませんwww.xxx.com。とにかく、プロトコルを文字列に戻すだけで問題ありません。

于 2013-10-15T12:02:14.117 に答える