Javascript URL验证正则表达式

hel*_*ava 5 javascript regex

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

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

这是来自ref: 用于URL验证的正则表达式(在JavaScript中)

这很好,包括像http://localhost:8080,但它也验证了我不想要的下面的情况.上面的正则表达式不应该通过以下网址

 1. http://www.example..com
 2. http://.com
 3. http://.
 4. http://www.example. 
Run Code Online (Sandbox Code Playgroud)

请正确帮助我作为正则表达式的菜鸟

第二个问题,虽然与问题没有关系,但正则表达式是,当我验证null和未定义的正则表达式/ ^ [az] + $/i我得到了真.这是默认行为还是我错过了这里的东西?

Chi*_*235 8

试试这个

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

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