验证网址没有https:// http://意味着也可以接受,如果网址是www接受两者(http和www)

时间:2015-08-03 07:56:07

标签: javascript regex

我正在尝试使用JavaScript构建一个只能接受的url的正则表达式 使用https://(http://)或不使用http,例如以www。

开头的网址

喜欢

http://www.google.com
https://www.google.com
www.google.com

这是我的正则表达式

/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|www\.)[a-z0-9]+([\-\.]{1}[a-z0-9]+)+\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/ 

但是这里有什么不对的是,它有时候不接受

www.abc.com

它接受了 www.acbc 和

 http://www.google
 https://www.google

1 个答案:

答案 0 :(得分:1)

试试这个:((http|ftp|https)://)?([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})(:[0-9]{1,4})*(/[a-zA-Z0-9\&%_\./-~-]*)?

<强>更新

如果你想在JavaScript中使用它,它应该是:

var re = /((http|ftp|https):\/\/)?([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})(:[0-9]{1,4})*(\/[a-zA-Z0-9\&%_\.\/-~-]*)?/;

console.log(re.test('http://www.google.com'));
console.log(re.test('https://www.google.com'));
console.log(re.test('www.google.com'));
console.log(re.test('google'));

url的定义非常简单,所以我认为只有正则表达式才能完成所有工作。