javascript – 验证Node.js中的Url

前端之家收集整理的这篇文章主要介绍了javascript – 验证Node.js中的Url前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您好,我想使用单个reguar表达式验证www.google.com或 http://www.google.com或google.com类型的网址,是否可以实现,如果是这样,请在javascript中共享解决方案.
请注意我只希望底层协议是HTTP或HTTPS morover现在的主要问题是我们如何使用Javascript中的单个正则表达式映射所有这三个模式,它不必检查页面是否处于活动状态,如果用户输入的值与上面列出的三个案例中的任何一个匹配,那么另一方面它应该返回true,如果它没有它应该返回fasle.

解决方法

检查URL是否有效

这有点像黑客,但如果我需要这样做,这就是我接近它的方式:

第一步

从给定的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");
});

>查看net-ping

第3步

您可以对该URL执行HTTP HEAD请求并检查状态代码.

var request = require('request');
request({method: 'HEAD',uri:'http://www.google.com'},response,body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Show the HTML for the Google homepage.
  }
})

>如果这是一个Web服务(因为您可以触发操作),这有点冒险.
>如果url需要身份验证/重定向,会更复杂
>@JanJůna评论说使用HEAD会更好.他完全正确.请注意,并非所有Web服务器都支持HEAD方法
>查看request包装

有一个包!

您可以使用名为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

如果你还想要一个简单的REGEX

谷歌是你的朋友. check this out

猜你在找的JavaScript相关文章