我正在尝试使用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
答案 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的定义非常简单,所以我认为只有正则表达式才能完成所有工作。