2013-10-15 203 views
0

我使用jQuery验证插件验证了网址。 jQuery的验证插件已建成一个URL规则jQuery validation plugin不接受网址验证

JavaScript是:

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

我的要求是

  1. jQuery验证插件是必要的,因为它是正确的验证,因此它可以”改变
  2. 除此之外,它必须通过www.xxx.com。因为我将在验证之前添加http://或https://。我需要正则表达式来传递www.xxx.com。可以添加的正则表达式不应该影响其他jQuery验证插件行为。
+0

什么*不*它做什么?你提供的是什么输入不能正确验证? –

+0

它不允许使用“www.xxx.com”,因为它不是网址 - 它是一个字符串。 – h2ooooooo

+0

'www.xxx.com'只是一个域名,而不是一个URL。如果你想验证它的URL,你必须首先做到这一点。 – CBroe

回答

-1

此验证工作正常 - 您只是使用字符串。尝试验证http://www.xxx.com

如果您只有www.xxx.com,则无法正确获取网址。无论如何,只需将协议添加回字符串,你应该没问题。

+0

他要求验证http(s)://也 – Anup

+0

@Anup http://en.wikipedia.org/wiki/HTTP_Secure即使他们的答案没有错误,你也不会帮助你,也会失败其他人。你应该为自己的行为感到羞耻。 – Dropout

+0

我想帮助,但你不是先生辍学你倒投了我不是我,其他答案也使用我的正则表达式的方法,因为它是正确的方法好吗... – Anup

0

你的链接工作完美的,你只需要添加/发送网址,如:

http://www.google.com

,如果你想验证网址separatly那么你可以使用:

函数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 is the best link for your url validate method check it

+0

他想要jQuery验证插件.. – Dropout

+1

但他为什么他想要使用插件直到它可以轻松完成一些js,jquery,regex直接方法 – Anup

+0

因为表单验证远不止匹配URL。 –

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); 
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

+0

@ coolprarun- jsfiddle示例不接受www.xxx.com。那有什么用呢? – Sam

+0

它说不行为www.xxx.com – Sam

+0

你需要与http和没有http右@Sam – coolprarun