Browse Source

Z991239-6413 #comment Agge头文件整合

80374374 2 months ago
parent
commit
710ec74f78
3 changed files with 78 additions and 115 deletions
  1. 6 0
      Framework/Common/SpUtility.h
  2. 72 0
      Framework/spbase/SpUtility.cpp
  3. 0 115
      Module/include/CommEntityHelpAgge.hpp

+ 6 - 0
Framework/Common/SpUtility.h

@@ -73,11 +73,15 @@ namespace SP {
 			return s.find(infix) != std::string::npos;
 		}
 
+		inline bool IsNum(const std::string& value);
+
 		inline char ToLowerCh(char c)
 		{
 			return static_cast<char>(std::tolower(c));
 		}
 
+		inline bool CheckIPv4(const std::string& value);
+
 		inline void toLowerInPlace(std::string& s)
 		{
 			std::transform(s.begin(), s.end(), s.begin(), ToLowerCh);
@@ -198,6 +202,8 @@ namespace SP {
 			return strClassName;
 		}
 
+		inline bool IsValidUrl(const std::string& value);
+
         SPBASE_API std::string W2S(const std::wstring wstr);
         SPBASE_API std::wstring S2W(const std::string str);
         SPBASE_API std::string GBK2UTF8(const std::string str);

+ 72 - 0
Framework/spbase/SpUtility.cpp

@@ -2,6 +2,7 @@
 #include "SpUtility.h"
 #include "charset.h"
 #include "dbgutil.h"
+#include <regex>
 #define TAG SPBASE_TAG("SpUtility")
 
 namespace SP
@@ -146,6 +147,77 @@ std::string UTF8ToGBK(const std::string str)
     return result;
 }
 
+bool IsNum(const std::string& value)
+{
+	if (value.empty()) {
+		return false;
+	}
+    std::regex pattern("^[0-9]+$");
+	if (std::regex_match(value, pattern)) {
+        return true;
+	}
+	else {
+        return false;
+	}
+}
+
+bool CheckIPv4(const std::string& value)
+{
+	if (value.empty()) {
+		return false;
+	}
+	std::vector<std::string> elems = SP::Utility::Split(value, '.');
+	if (elems.size() != 4) {
+		return false;
+	}
+	for (int i = 0; i < 4; i++) {
+		if (!IsNum(elems[i])) {
+			return false;
+		}
+		if (elems[i].find(' ') != std::string::npos) {
+			return false;
+		}
+		if ((elems[i].find('0') == 0) && (elems[i].length() != 1)) {
+			return false;
+		}
+	}
+
+	if ((stoi(elems[0]) < 0 || stoi(elems[0]) > 255) ||
+		(stoi(elems[1]) < 0 || stoi(elems[1]) > 255) ||
+		(stoi(elems[2]) < 0 || stoi(elems[2]) > 255) ||
+		(stoi(elems[3]) < 0 || stoi(elems[3]) > 255)) {
+		return false;
+	}
+	return true;
+}
+
+bool IsValidUrl(const std::string& value)
+{
+	if (value.empty()) {
+		return false;
+	}
+	else {
+		std::string strUrl = ToLower(value.c_str());
+		std::string pattern = "^((https|http)://)";
+		pattern += "(([0-9a-z_!~*\\'().&=+$%-]+: )?[0-9a-z_!~*\\'().&=+$%-]+@)?";
+		pattern += "(([0-9]{1,3}\\.){3}[0-9]{1,3}";
+		pattern += "|";
+		pattern += "([0-9a-z_!~*\\'()-]+\\.)*";
+		pattern += "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\.";
+		pattern += "[a-z]{2,6})";
+		pattern += "(:[0-9]{1,4})?";
+		pattern += "((/?)|";
+		pattern += "(/[0-9a-z_!~*\\'().;?:@&=+$,%#-]+)+/?)$";
+        std::regex patternReg(pattern);
+		if (std::regex_match(strUrl, patternReg)) {
+            return true;
+		}
+		else {
+            return false;
+		}
+	}
+}
+
 std::string W2S(const std::wstring wstr)
 {
     std::string result("");

+ 0 - 115
Module/include/CommEntityHelpAgge.hpp

@@ -1,115 +0,0 @@
-#ifndef RVC_MOD_COMM_ENTITY_HELP_AGGERATE_HPP_
-#define RVC_MOD_COMM_ENTITY_HELP_AGGERATE_HPP_
-
-#include <string>
-#include <regex.h>
-#include "SimpleString.h"
-
-namespace SP
-{
-namespace Module
-{
-namespace Ulitily
-{
-
-bool IsValidUrl(const CSimpleStringA& value)
-{
-    if (value.IsNullOrEmpty()) {
-        return false;
-    } else {
-        std::string strUrl = SP::Utility::ToLower(value.GetData());
-        regex_t reg;
-        CSimpleStringA pattern = "^((https|http)://)";
-        pattern += "(([0-9a-z_!~*\\'().&=+$%-]+: )?[0-9a-z_!~*\\'().&=+$%-]+@)?";
-        pattern += "(([0-9]{1,3}\\.){3}[0-9]{1,3}";
-        pattern += "|";
-        pattern += "([0-9a-z_!~*\\'()-]+\\.)*";
-        pattern += "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\.";
-        pattern += "[a-z]{2,6})";
-        pattern += "(:[0-9]{1,4})?";
-        pattern += "((/?)|";
-        pattern += "(/[0-9a-z_!~*\\'().;?:@&=+$,%#-]+)+/?)$";
-
-        int ret = regcomp(&reg, pattern, REG_EXTENDED | REG_NOSUB);
-        if (ret) {
-            char ebuff[256];
-            regerror(ret, &reg, ebuff, 256);
-            DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("regex failed: %s", ebuff);
-            return false;
-        }
-
-        ret = regexec(&reg, strUrl.c_str(), 0, NULL, 0);
-        if (0 == ret) {
-            DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("correct url format: %s", strUrl.c_str());
-            return true;
-        } else {
-            char ebuff[256];
-            regerror(ret, &reg, ebuff, 256);
-            DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("%s not match: %s", strUrl.c_str(), ebuff);
-            return false;
-        }
-    }
-}
-
-bool IsNum(const std::string& value)
-{
-    if (value.empty()) {
-        return false;
-    }
-    regex_t reg;
-    const std::string pattern = "^[0-9]+$";
-    int ret = regcomp(&reg, pattern.c_str(), REG_EXTENDED | REG_NOSUB);
-    if (ret) {
-        char ebuff[256];
-        regerror(ret, &reg, ebuff, 256);
-        DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("regex failed: %s", ebuff);
-        return false;
-    }
-
-    ret = regexec(&reg, value.c_str(), 0, NULL, 0);
-    if (0 == ret) {
-        return true;
-    } else {
-        char ebuff[256];
-        regerror(ret, &reg, ebuff, 256);
-        DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("%s not match: %s", value.c_str(), ebuff);
-        return false;
-    }
-}
-
-bool CheckIPv4(const std::string& value)
-{
-    if (value.empty()) {
-        return false;
-    }
-    std::vector<std::string> elems = SP::Utility::Split(value, '.');
-    if (elems.size() != 4) {
-        return false;
-    }
-    for (int i = 0; i < 4; i++) {
-        if (!IsNum(elems[i])) {
-            return false;
-        }
-        if (elems[i].find(' ') != std::string::npos) {
-            return false;
-        }
-        if ((elems[i].find('0') == 0) && (elems[i].length() != 1)) {
-            return false;
-        }
-    }
-
-    if ((stoi(elems[0]) < 0 || stoi(elems[0]) > 255) ||
-        (stoi(elems[1]) < 0 || stoi(elems[1]) > 255) ||
-        (stoi(elems[2]) < 0 || stoi(elems[2]) > 255) ||
-        (stoi(elems[3]) < 0 || stoi(elems[3]) > 255)) {
-        return false;
-    }
-    return true;
-}
-
-
-}
-}
-}
-
-#endif //RVC_MOD_COMM_ENTITY_HELP_AGGERATE_HPP_