add is link checker

This commit is contained in:
chatlanin 2022-11-15 11:38:52 +03:00
parent 97b30f32f2
commit dc28f6b6db
2 changed files with 25 additions and 0 deletions

View File

@ -19,6 +19,7 @@
#include "security/validate_email.hpp"
#include "security/uuid.hpp"
#include "security/is_string.hpp"
#include "security/is_link.hpp"
// for example
int f(int a)
@ -298,4 +299,14 @@ int main(int argc, char *argv[])
query = hack::utils::make_query("super_function", 1, 123.3f, js);
hack::log()("query", query);
}
{// ex: is link
std::string link { "https://google.com" };
if (hack::security::is_link(link))
hack::log()("is link");
link = "https//google.com";
if (!hack::security::is_link(link))
hack::error()("no link");
}
}

14
src/security/is_link.hpp Normal file
View File

@ -0,0 +1,14 @@
#pragma once
#include <uuid/uuid.h>
#include <regex>
#include <string>
namespace hack::security
{
inline bool is_link(const std::string& s)
{
static const std::regex e("^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?$", std::regex_constants::icase);
return std::regex_match (s, e);
}
}