关于使用正则表达式的url验证有很多帖子。我得到了这个Link表达式并创建了一个验证url的函数。一切都很好,但我想“some.com”也真正的,这是我 false 。我尝试了一些常规的exp 空字符串,如 ^ $ ,但工作不正常!
function is_url(url)
{
if(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|www\.)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(url))
{
return true
}
else
{
return false
}
}
结果:
https:\\ www.some.com - true
http:\\ www.some.com - true
http:\\ some.com - true
www.some.com - true
some.com - false //我希望这也是真的
任何帮助?
答案 0 :(得分:1)
尝试validator.js https://www.npmjs.com/package/validator
isURL(str [,options]) - 检查字符串是否为URL。 options是一个默认为{protocols:[' http',' https',' ftp'],require_tld:true,require_protocol:false,allow_underscores:false的对象,host_whitelist:false,host_blacklist:false,allow_trailing_dot:false,allow_protocol_relative_urls:false}。
bower install validator-js
<script type="text/javascript" src="bower_components/validator-js/validator.min.js"></script>
<script type="text/javascript">
var urlOptions = {protocols: ['http','https'], require_protocol: false, allow_underscores: false};
console.log(validator.isURL('https://www.some.com', urlOptions));
console.log(validator.isURL('http://www.some.com', urlOptions));
console.log(validator.isURL('http://some.com', urlOptions));
console.log(validator.isURL('www.some.com', urlOptions));
console.log(validator.isURL('some.com', urlOptions));
</script>
这是结果: