我想验证以下类型的URL:
www.google.com
http://www.google.com
google.com
使用单个正则表达式,可以实现吗?如果是这样,请共享一个JavaScript解决方案。
请注意,我只希望底层协议为HTTP或HTTPS。而且,当前的主要问题是如何使用JavaScript中的一个正则表达式来映射所有这三种模式?不必检查页面是否处于活动状态。如果用户输入的值与上面列出的三种情况中的任何一种匹配,则true如果不匹配,则应返回false。
true
false
这有点hack,但是如果我需要这样做,这就是我的处理方式:
解析并提取给定网址中的域/ IP
http:// **drive.google.com / 0/ **23➡drive.google.com
这是在nodejs中执行的操作:
var url = require("url"); var result = url.parse('http://drive.google.com/0/23'); console.log(result.hostname);
ping 提取的域/ ip-由于网络配置,并非所有服务器都会响应ICMP(PING)请求。
var ping = require ("net-ping"); var session = ping.createSession (); session.pingHost (target, function (error, target) { if (error) console.log (target + ": " + error.toString ()); else console.log (target + ": Alive"); });
您可以对该网址执行HTTP HEAD请求,并检查状态码。
var request = require('request'); request({method: 'HEAD', uri:'http://www.google.com'}, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) // Show the HTML for the Google homepage. } })
HEAD
您可以使用现有的称为 validUrl的 nodejs程序包
用法:
var validUrl = require('valid-url'); var url = "http://bla.com" if (validUrl.isUri(url)){ console.log('Looks like an URI'); } else { console.log('Not a URI'); }
安装 :
npm install valid-url --save