这是一个关于如何在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和域名的有效性。