我正在使用jQuery validate插件验证一个url。 jquery validate插件内置了一个url规则。jQuery validation plugin
JavaScript是:
$( "#form").validate({
rules: {
field: {
required: true,
url: true
}
}
});
我的要求是
答案 0 :(得分:0)
您的链接工作正常,您只需要添加/发送网址:
如果你想分开验证网址,那么你可以使用:
function 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<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/);
}
答案 1 :(得分: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);
答案 2 :(得分: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\.&%\$\-]+)*@)*((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\.\,\?\'\\\+&%\$#\=~_\-]+))*$");
if (urlregex.test(value)) {
return (true);
}
return (false);
}
<强> JSFIDDLE 强>
答案 3 :(得分:-1)
此验证工作正常 - 您只是使用字符串。尝试验证http://www.xxx.com
如果您只有www.xxx.com
,则无法正确获取网址。无论如何只需将协议添加回字符串,你应该没问题。