Javascript URL验证正则表达式

时间:2013-08-21 17:52:24

标签: javascript regex

我有以下网址验证正则表达式:

/(ftp | https?):// [^“] + $ /

这是来自参考: Regular expression for URL validation (in JavaScript)

这样可以正常使用http://localhost:8080之类的案例,但它也验证了我不想要的以下内容。上面的正则表达式不应该通过以下网址

 1. http://www.example..com
 2. http://.com
 3. http://.
 4. http://www.example. 

请正确帮助,因为我是正则表达式中的菜鸟

第二个问题,虽然与问题无关,但正则表达式是,当我对正则表达式 / ^ [a-z] + $ / i 验证null和undefined时,我得到了真的。这是默认行为还是我错过了什么?

2 个答案:

答案 0 :(得分:8)

试试这个

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

在您想要网站验证的任何地方调用is_valid_url(YOUR_WEBSITE_URL)功能。

答案 1 :(得分:2)

试试这个..

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script>
<script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script>
<script>
// just for the demos, avoids form submit
jQuery.validator.setDefaults({
  debug: true,
  success: "valid"
});
$( "#myform" ).validate({
  rules: {
    field: {
      required: true,
      url: true
    }
  }
});
</script>