使用JavaScript中的正则表达式验证网址

时间:2015-06-05 07:55:23

标签: javascript regex validation

关于使用正则表达式的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 //我希望这也是真的

任何帮助?

1 个答案:

答案 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> 

这是结果:

  1. 代码:http://joxi.ru/vDr8ooZC3jQGA6
  2. 输出:http://joxi.ru/gV2VGG4tOMgaAv