Nodejs的URL和域名验证与实例

816 阅读2分钟

这是一个关于如何在Nodejs应用程序中验证以下内容的简短教程

  • 验证URI
  • 域名验证

对URI的验证是为了检查有效的URL,域名的验证是为了检查URL是否包含http或https以及扩展名是否存在。

如何在nodejs中检查域名的http或https的有效性?

有些时候,我们想检查abc.com是否有效。

nodejs提供了valid-url npm包来进行验证。

使用以下命令在应用程序中安装node valid-url包

npm i valid-url

下面是一个nodejs的url验证的代码

var urlmodule = require('valid-url');

var url = "https://google.com"
    console.log(urlmodule.isUri(url));  //https://google.com
    console.log(urlmodule.isHttpUri(url)); // undefined
    console.log(urlmodule.isHttpsUri(url)); //https://google.com
    console.log(urlmodule.isWebUri(url));//https://google.com

valid-url包提供了以下方法

  • isUri - 检查有效的URI,如果有效则返回相同的值,否则未定义。
  • isHttpUri - 检查是否为http网址,如果是http网址则返回网址,否则返回未定义的网址
  • isHttpsUri - 检查HTTPS网址,如果是HTTPS网址则返回网址,否则返回未定义。
  • isWebUri - 检查有效的HTTP或HTTPS网址。

如何在Nodejs中检查URL是否有效?

另一种方法是使用nodejs中的url-exists包

首先使用下面的命令进行安装

npm install --save url-exists

以下是在nodejs中执行的步骤,并带有检查URL有效性的回调功能

const urlExists = require("url-exists");

urlExists(url, function(err, exists) {
  if (exists) {
    console.log('Valid URL');
  } else {
    console.log('Not valid URL');
  }
});

用正则表达式来检查URL是否有效

在javascript中,正则表达式是用来检查字符串与表达式模式的关系。

下面是一个检查的例子

const url="google.com"
  var regexpression = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;

  console.log(regxpression.test(url)); // true
        if (regexpression.test(url)) {
            console.log("Url is valid");
        } else{
            console.log("Url is not valid!");
		}

结论

在本教程中,你学到了如何使用npm库和正则表达式在nodejs中验证url和域名的有效性。