您好,我想使用单个reguar表达式验证www.google.com或http://www.google.com或google.com类型的网址,是否可以实现,如果是这样,请在javascript中共享解决方案。请注意我只希望底层协议是HTTP或HTTPS morover现在的主要问题是我们如何使用Javascript中的单个正则表达式映射所有这三个模式,它不必检查页面是否处于活动状态,如果用户输入的值与上面列出的三个案例中的任何一个匹配,则另一方面它应该返回true,如果它没有它应该返回fasle。
这有点像黑客,但如果我需要这样做,这就是我接近它的方式:
从给定的URL解析并提取域/ 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");
});
您可以对该URL执行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
谷歌是你的朋友。 check this out
“valid-url”npm包对我来说不起作用。对于无效的网址,它返回有效。对我有用的是“url-exists”
const urlExists = require("url-exists");
urlExists(myurl, function(err, exists) {
if (exists) {
res.send('Good URL');
} else {
res.send('Bad URL');
}
});
无需使用第三方库。
检查字符串是否是有效的URL
const URL = require("url").URL;
const stringIsAValidUrl = (s) => {
try {
new URL(s);
return true;
} catch (err) {
return false;
}
};
stringIsAValidUrl("https://www.example.com:777/a/b?c=d&e=f#g"); //true
stringIsAValidUrl("invalid"): //false
如果您需要将协议限制为一系列协议,您可以执行类似的操作
const { URL, parse } = require('url');
const stringIsAValidUrl = (s, protocols) => {
try {
new URL(s);
const parsed = parse(s);
return protocols
? parsed.protocol
? protocols.map(x => `${x.toLowerCase()}:`).includes(parsed.protocol)
: false
: true;
} catch (err) {
return false;
}
};
stringIsAValidUrl('abc://www.example.com:777/a/b?c=d&e=f#g', ['http', 'https']); // false
stringIsAValidUrl('abc://www.example.com:777/a/b?c=d&e=f#g'); // true