VALIDATION

Constant VALIDATION 

Source
pub const VALIDATION: &str = "// stdlib/validation.aether\n// Aether \u{6570}\u{636e}\u{9a8c}\u{8bc1}\u{5e93}\n// \u{63d0}\u{4f9b}\u{5e38}\u{7528}\u{7684}\u{6570}\u{636e}\u{9a8c}\u{8bc1}\u{51fd}\u{6570}\n\n// ==================== \u{90ae}\u{7bb1}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{90ae}\u{7bb1}\u{5730}\u{5740}\u{683c}\u{5f0f}\nFunc VALIDATE_EMAIL(EMAIL) {\n    Set LEN STRLEN(EMAIL)\n    \n    If (LEN < 3) {\n        Return False\n    }\n    \n    // \u{68c0}\u{67e5}\u{662f}\u{5426}\u{5305}\u{542b} @\n    Set HAS_AT False\n    Set AT_POS -1\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(EMAIL, I, I + 1)\n        If (CHAR == \"@\") {\n            If (HAS_AT) {\n                // \u{591a}\u{4e2a} @ \u{7b26}\u{53f7}\n                Return False\n            }\n            Set HAS_AT True\n            Set AT_POS I\n        }\n        Set I (I + 1)\n    }\n    \n    If (!HAS_AT || AT_POS == 0 || AT_POS == (LEN - 1)) {\n        Return False\n    }\n    \n    // \u{68c0}\u{67e5}\u{662f}\u{5426}\u{5305}\u{542b}\u{70b9}\u{53f7}\u{ff0c}\u{4e14}\u{5728} @ \u{4e4b}\u{540e}\n    Set HAS_DOT_AFTER_AT False\n    Set I (AT_POS + 1)\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(EMAIL, I, I + 1)\n        If (CHAR == \".\") {\n            If (I != (LEN - 1) && I != (AT_POS + 1)) {\n                Set HAS_DOT_AFTER_AT True\n            }\n        }\n        Set I (I + 1)\n    }\n    \n    Return HAS_DOT_AFTER_AT\n}\n\n// ==================== \u{7535}\u{8bdd}\u{53f7}\u{7801}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{4e2d}\u{56fd}\u{5927}\u{9646}\u{624b}\u{673a}\u{53f7}\u{7801}\u{ff08}11\u{4f4d}\u{ff0c}1\u{5f00}\u{5934}\u{ff09}\nFunc VALIDATE_PHONE_CN(PHONE) {\n    Set PHONE_STR TO_STRING(PHONE)\n    Set LEN STRLEN(PHONE_STR)\n    \n    // \u{5fc5}\u{987b}\u{662f}11\u{4f4d}\n    If (LEN != 11) {\n        Return False\n    }\n    \n    // \u{7b2c}\u{4e00}\u{4f4d}\u{5fc5}\u{987b}\u{662f}1\n    Set FIRST_CHAR STRSLICE(PHONE_STR, 0, 1)\n    If (FIRST_CHAR != \"1\") {\n        Return False\n    }\n    \n    // \u{6240}\u{6709}\u{5b57}\u{7b26}\u{5fc5}\u{987b}\u{662f}\u{6570}\u{5b57}\n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(PHONE_STR, I, I + 1)\n        If (CHAR < \"0\" || CHAR > \"9\") {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// \u{9a8c}\u{8bc1}\u{901a}\u{7528}\u{7535}\u{8bdd}\u{53f7}\u{7801}\u{ff08}\u{53ea}\u{5305}\u{542b}\u{6570}\u{5b57}\u{3001}\u{7a7a}\u{683c}\u{3001}\u{77ed}\u{6a2a}\u{7ebf}\u{3001}\u{62ec}\u{53f7}\u{3001}\u{52a0}\u{53f7}\u{ff09}\nFunc VALIDATE_PHONE_GENERAL(PHONE) {\n    Set PHONE_STR TO_STRING(PHONE)\n    Set LEN STRLEN(PHONE_STR)\n    \n    If (LEN < 3) {\n        Return False\n    }\n    \n    Set DIGIT_COUNT 0\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(PHONE_STR, I, I + 1)\n        Set IS_DIGIT (CHAR >= \"0\" && CHAR <= \"9\")\n        Set IS_VALID (IS_DIGIT || CHAR == \" \" || CHAR == \"-\" || CHAR == \"(\" || CHAR == \")\" || CHAR == \"+\")\n        \n        If (!IS_VALID) {\n            Return False\n        }\n        \n        If (IS_DIGIT) {\n            Set DIGIT_COUNT (DIGIT_COUNT + 1)\n        }\n        \n        Set I (I + 1)\n    }\n    \n    // \u{81f3}\u{5c11}\u{8981}\u{6709}7\u{4e2a}\u{6570}\u{5b57}\n    Return (DIGIT_COUNT >= 7)\n}\n\n// ==================== \u{8eab}\u{4efd}\u{8bc1}\u{53f7}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{4e2d}\u{56fd}\u{5927}\u{9646}\u{8eab}\u{4efd}\u{8bc1}\u{53f7}\u{ff08}18\u{4f4d}\u{ff09}\nFunc VALIDATE_ID_CARD_CN(ID_CARD) {\n    Set ID_STR TO_STRING(ID_CARD)\n    Set LEN STRLEN(ID_STR)\n    \n    // \u{5fc5}\u{987b}\u{662f}18\u{4f4d}\n    If (LEN != 18) {\n        Return False\n    }\n    \n    // \u{524d}17\u{4f4d}\u{5fc5}\u{987b}\u{662f}\u{6570}\u{5b57}\n    Set I 0\n    While (I < 17) {\n        Set CHAR STRSLICE(ID_STR, I, I + 1)\n        If (CHAR < \"0\" || CHAR > \"9\") {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    // \u{6700}\u{540e}\u{4e00}\u{4f4d}\u{53ef}\u{4ee5}\u{662f}\u{6570}\u{5b57}\u{6216}X\n    Set LAST_CHAR STRSLICE(ID_STR, 17, 18)\n    Set VALID_LAST ((LAST_CHAR >= \"0\" && LAST_CHAR <= \"9\") || LAST_CHAR == \"X\" || LAST_CHAR == \"x\")\n    \n    If (!VALID_LAST) {\n        Return False\n    }\n    \n    // \u{9a8c}\u{8bc1}\u{51fa}\u{751f}\u{65e5}\u{671f}\u{ff08}\u{7b80}\u{5355}\u{68c0}\u{67e5}\u{ff09}\n    Set YEAR_STR STRSLICE(ID_STR, 6, 10)\n    Set MONTH_STR STRSLICE(ID_STR, 10, 12)\n    Set DAY_STR STRSLICE(ID_STR, 12, 14)\n    \n    // \u{8fd9}\u{91cc}\u{7b80}\u{5316}\u{5904}\u{7406}\u{ff0c}\u{5b9e}\u{9645}\u{5e94}\u{8be5}\u{8f6c}\u{6362}\u{4e3a}\u{6570}\u{5b57}\u{8fdb}\u{884c}\u{66f4}\u{4e25}\u{683c}\u{7684}\u{9a8c}\u{8bc1}\n    // \u{6708}\u{4efd}\u{5e94}\u{8be5}\u{5728} 01-12 \u{4e4b}\u{95f4}\n    Set MONTH_FIRST STRSLICE(MONTH_STR, 0, 1)\n    Set MONTH_SECOND STRSLICE(MONTH_STR, 1, 2)\n    \n    If (MONTH_FIRST == \"0\") {\n        If (MONTH_SECOND < \"1\" || MONTH_SECOND > \"9\") {\n            Return False\n        }\n    } Elif (MONTH_FIRST == \"1\") {\n        If (MONTH_SECOND < \"0\" || MONTH_SECOND > \"2\") {\n            Return False\n        }\n    } Else {\n        Return False\n    }\n    \n    Return True\n}\n\n// ==================== URL \u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1} URL \u{683c}\u{5f0f}\nFunc VALIDATE_URL(URL) {\n    Set LEN STRLEN(URL)\n    \n    If (LEN < 10) {\n        Return False\n    }\n    \n    // \u{68c0}\u{67e5}\u{662f}\u{5426}\u{4ee5} http:// \u{6216} https:// \u{5f00}\u{5934}\n    Set HTTP_PREFIX \"http://\"\n    Set HTTPS_PREFIX \"https://\"\n    \n    Set HAS_HTTP False\n    Set HAS_HTTPS False\n    \n    If (LEN >= 7) {\n        Set PREFIX7 STRSLICE(URL, 0, 7)\n        If (PREFIX7 == HTTP_PREFIX) {\n            Set HAS_HTTP True\n        }\n    }\n    \n    If (LEN >= 8) {\n        Set PREFIX8 STRSLICE(URL, 0, 8)\n        If (PREFIX8 == HTTPS_PREFIX) {\n            Set HAS_HTTPS True\n        }\n    }\n    \n    If (!HAS_HTTP && !HAS_HTTPS) {\n        Return False\n    }\n    \n    // \u{68c0}\u{67e5}\u{662f}\u{5426}\u{5305}\u{542b}\u{57df}\u{540d}\u{ff08}\u{81f3}\u{5c11}\u{6709}\u{4e00}\u{4e2a}\u{70b9}\u{ff09}\n    Set START_POS 7\n    If (HAS_HTTPS) {\n        Set START_POS 8\n    }\n    \n    Set HAS_DOT False\n    Set I START_POS\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(URL, I, I + 1)\n        If (CHAR == \".\") {\n            Set HAS_DOT True\n            Break\n        }\n        Set I (I + 1)\n    }\n    \n    Return HAS_DOT\n}\n\n// \u{9a8c}\u{8bc1}\u{7b80}\u{5355}\u{7684}\u{57df}\u{540d}\u{683c}\u{5f0f}\nFunc VALIDATE_DOMAIN(DOMAIN) {\n    Set LEN STRLEN(DOMAIN)\n    \n    If (LEN < 3) {\n        Return False\n    }\n    \n    // \u{4e0d}\u{80fd}\u{4ee5}\u{70b9}\u{5f00}\u{5934}\u{6216}\u{7ed3}\u{675f}\n    Set FIRST_CHAR STRSLICE(DOMAIN, 0, 1)\n    Set LAST_CHAR STRSLICE(DOMAIN, LEN - 1, LEN)\n    \n    If (FIRST_CHAR == \".\" || LAST_CHAR == \".\") {\n        Return False\n    }\n    \n    // \u{5fc5}\u{987b}\u{81f3}\u{5c11}\u{5305}\u{542b}\u{4e00}\u{4e2a}\u{70b9}\n    Set HAS_DOT False\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(DOMAIN, I, I + 1)\n        If (CHAR == \".\") {\n            Set HAS_DOT True\n        }\n        Set I (I + 1)\n    }\n    \n    Return HAS_DOT\n}\n\n// ==================== \u{6570}\u{503c}\u{8303}\u{56f4}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{6570}\u{503c}\u{662f}\u{5426}\u{5728}\u{6307}\u{5b9a}\u{8303}\u{56f4}\u{5185}\u{ff08}\u{5305}\u{542b}\u{8fb9}\u{754c}\u{ff09}\nFunc VALIDATE_RANGE(VALUE, MIN, MAX) {\n    Return (VALUE >= MIN && VALUE <= MAX)\n}\n\n// \u{9a8c}\u{8bc1}\u{6570}\u{503c}\u{662f}\u{5426}\u{4e3a}\u{6b63}\u{6570}\nFunc VALIDATE_POSITIVE(VALUE) {\n    Return (VALUE > 0)\n}\n\n// \u{9a8c}\u{8bc1}\u{6570}\u{503c}\u{662f}\u{5426}\u{4e3a}\u{975e}\u{8d1f}\u{6570}\nFunc VALIDATE_NON_NEGATIVE(VALUE) {\n    Return (VALUE >= 0)\n}\n\n// \u{9a8c}\u{8bc1}\u{6570}\u{503c}\u{662f}\u{5426}\u{4e3a}\u{6574}\u{6570}\nFunc VALIDATE_INTEGER(VALUE) {\n    Set VALUE_STR TO_STRING(VALUE)\n    Set LEN STRLEN(VALUE_STR)\n    \n    If (LEN == 0) {\n        Return False\n    }\n    \n    Set I 0\n    Set FIRST_CHAR STRSLICE(VALUE_STR, 0, 1)\n    \n    // \u{53ef}\u{4ee5}\u{4ee5}\u{8d1f}\u{53f7}\u{5f00}\u{5934}\n    If (FIRST_CHAR == \"-\" || FIRST_CHAR == \"+\") {\n        Set I 1\n    }\n    \n    If (I == LEN) {\n        Return False\n    }\n    \n    // \u{5176}\u{4f59}\u{5fc5}\u{987b}\u{90fd}\u{662f}\u{6570}\u{5b57}\u{ff0c}\u{4e0d}\u{80fd}\u{6709}\u{5c0f}\u{6570}\u{70b9}\n    While (I < LEN) {\n        Set CHAR STRSLICE(VALUE_STR, I, I + 1)\n        If (CHAR < \"0\" || CHAR > \"9\") {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// ==================== \u{5b57}\u{7b26}\u{4e32}\u{5185}\u{5bb9}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{5b57}\u{7b26}\u{4e32}\u{957f}\u{5ea6}\u{662f}\u{5426}\u{5728}\u{6307}\u{5b9a}\u{8303}\u{56f4}\u{5185}\nFunc VALIDATE_LENGTH(STR, MIN_LEN, MAX_LEN) {\n    Set LEN STRLEN(STR)\n    Return (LEN >= MIN_LEN && LEN <= MAX_LEN)\n}\n\n// \u{9a8c}\u{8bc1}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{975e}\u{7a7a}\nFunc VALIDATE_NOT_EMPTY(STR) {\n    Set LEN STRLEN(STR)\n    Return (LEN > 0)\n}\n\n// \u{9a8c}\u{8bc1}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{53ea}\u{5305}\u{542b}\u{5b57}\u{6bcd}\nFunc VALIDATE_ALPHA(STR) {\n    Set LEN STRLEN(STR)\n    \n    If (LEN == 0) {\n        Return False\n    }\n    \n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        Set IS_ALPHA ((CHAR >= \"a\" && CHAR <= \"z\") || (CHAR >= \"A\" && CHAR <= \"Z\"))\n        If (!IS_ALPHA) {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// \u{9a8c}\u{8bc1}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{53ea}\u{5305}\u{542b}\u{6570}\u{5b57}\nFunc VALIDATE_NUMERIC(STR) {\n    Set LEN STRLEN(STR)\n    \n    If (LEN == 0) {\n        Return False\n    }\n    \n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        If (CHAR < \"0\" || CHAR > \"9\") {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// \u{9a8c}\u{8bc1}\u{5b57}\u{7b26}\u{4e32}\u{662f}\u{5426}\u{53ea}\u{5305}\u{542b}\u{5b57}\u{6bcd}\u{548c}\u{6570}\u{5b57}\nFunc VALIDATE_ALPHANUMERIC(STR) {\n    Set LEN STRLEN(STR)\n    \n    If (LEN == 0) {\n        Return False\n    }\n    \n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(STR, I, I + 1)\n        Set IS_ALPHA ((CHAR >= \"a\" && CHAR <= \"z\") || (CHAR >= \"A\" && CHAR <= \"Z\"))\n        Set IS_DIGIT (CHAR >= \"0\" && CHAR <= \"9\")\n        If (!IS_ALPHA && !IS_DIGIT) {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// ==================== \u{5bc6}\u{7801}\u{5f3a}\u{5ea6}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{5bc6}\u{7801}\u{5f3a}\u{5ea6}\u{ff08}\u{81f3}\u{5c11}8\u{4f4d}\u{ff0c}\u{5305}\u{542b}\u{5927}\u{5c0f}\u{5199}\u{5b57}\u{6bcd}\u{548c}\u{6570}\u{5b57}\u{ff09}\nFunc VALIDATE_PASSWORD_STRONG(PASSWORD) {\n    Set LEN STRLEN(PASSWORD)\n    \n    If (LEN < 8) {\n        Return False\n    }\n    \n    Set HAS_UPPER False\n    Set HAS_LOWER False\n    Set HAS_DIGIT False\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(PASSWORD, I, I + 1)\n        \n        If (CHAR >= \"A\" && CHAR <= \"Z\") {\n            Set HAS_UPPER True\n        } Elif (CHAR >= \"a\" && CHAR <= \"z\") {\n            Set HAS_LOWER True\n        } Elif (CHAR >= \"0\" && CHAR <= \"9\") {\n            Set HAS_DIGIT True\n        }\n        \n        Set I (I + 1)\n    }\n    \n    Return (HAS_UPPER && HAS_LOWER && HAS_DIGIT)\n}\n\n// \u{9a8c}\u{8bc1}\u{5bc6}\u{7801}\u{5f3a}\u{5ea6}\u{ff08}\u{4e2d}\u{7b49}\u{ff1a}\u{81f3}\u{5c11}6\u{4f4d}\u{ff0c}\u{5305}\u{542b}\u{5b57}\u{6bcd}\u{548c}\u{6570}\u{5b57}\u{ff09}\nFunc VALIDATE_PASSWORD_MEDIUM(PASSWORD) {\n    Set LEN STRLEN(PASSWORD)\n    \n    If (LEN < 6) {\n        Return False\n    }\n    \n    Set HAS_LETTER False\n    Set HAS_DIGIT False\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(PASSWORD, I, I + 1)\n        \n        If ((CHAR >= \"A\" && CHAR <= \"Z\") || (CHAR >= \"a\" && CHAR <= \"z\")) {\n            Set HAS_LETTER True\n        } Elif (CHAR >= \"0\" && CHAR <= \"9\") {\n            Set HAS_DIGIT True\n        }\n        \n        Set I (I + 1)\n    }\n    \n    Return (HAS_LETTER && HAS_DIGIT)\n}\n\n// ==================== IP \u{5730}\u{5740}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1} IPv4 \u{5730}\u{5740}\u{683c}\u{5f0f}\u{ff08}\u{7b80}\u{5355}\u{7248}\u{672c}\u{ff09}\nFunc VALIDATE_IPV4(IP) {\n    Set LEN STRLEN(IP)\n    \n    If (LEN < 7 || LEN > 15) {\n        Return False\n    }\n    \n    // \u{8ba1}\u{7b97}\u{70b9}\u{53f7}\u{6570}\u{91cf}\n    Set DOT_COUNT 0\n    Set I 0\n    \n    While (I < LEN) {\n        Set CHAR STRSLICE(IP, I, I + 1)\n        If (CHAR == \".\") {\n            Set DOT_COUNT (DOT_COUNT + 1)\n        } Elif (CHAR < \"0\" || CHAR > \"9\") {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    // \u{5fc5}\u{987b}\u{6709}3\u{4e2a}\u{70b9}\n    Return (DOT_COUNT == 3)\n}\n\n// ==================== \u{4fe1}\u{7528}\u{5361}\u{53f7}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{4fe1}\u{7528}\u{5361}\u{53f7}\u{683c}\u{5f0f}\u{ff08}Luhn \u{7b97}\u{6cd5}\u{7684}\u{7b80}\u{5316}\u{7248}\u{672c}\u{ff09}\nFunc VALIDATE_CREDIT_CARD(CARD_NUMBER) {\n    Set CARD_STR TO_STRING(CARD_NUMBER)\n    Set LEN STRLEN(CARD_STR)\n    \n    // \u{4fe1}\u{7528}\u{5361}\u{53f7}\u{901a}\u{5e38}\u{662f}13-19\u{4f4d}\n    If (LEN < 13 || LEN > 19) {\n        Return False\n    }\n    \n    // \u{6240}\u{6709}\u{5b57}\u{7b26}\u{5fc5}\u{987b}\u{662f}\u{6570}\u{5b57}\n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(CARD_STR, I, I + 1)\n        If (CHAR < \"0\" || CHAR > \"9\") {\n            Return False\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// ==================== \u{65e5}\u{671f}\u{683c}\u{5f0f}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{65e5}\u{671f}\u{683c}\u{5f0f} YYYY-MM-DD\nFunc VALIDATE_DATE_FORMAT(DATE_STR) {\n    Set LEN STRLEN(DATE_STR)\n    \n    If (LEN != 10) {\n        Return False\n    }\n    \n    // \u{68c0}\u{67e5}\u{77ed}\u{6a2a}\u{7ebf}\u{4f4d}\u{7f6e}\n    Set DASH1 STRSLICE(DATE_STR, 4, 5)\n    Set DASH2 STRSLICE(DATE_STR, 7, 8)\n    \n    If (DASH1 != \"-\" || DASH2 != \"-\") {\n        Return False\n    }\n    \n    // \u{68c0}\u{67e5}\u{5e74}\u{6708}\u{65e5}\u{662f}\u{5426}\u{90fd}\u{662f}\u{6570}\u{5b57}\n    Set I 0\n    While (I < LEN) {\n        If (I != 4 && I != 7) {\n            Set CHAR STRSLICE(DATE_STR, I, I + 1)\n            If (CHAR < \"0\" || CHAR > \"9\") {\n                Return False\n            }\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// \u{9a8c}\u{8bc1}\u{65f6}\u{95f4}\u{683c}\u{5f0f} HH:MM:SS\nFunc VALIDATE_TIME_FORMAT(TIME_STR) {\n    Set LEN STRLEN(TIME_STR)\n    \n    If (LEN != 8) {\n        Return False\n    }\n    \n    // \u{68c0}\u{67e5}\u{5192}\u{53f7}\u{4f4d}\u{7f6e}\n    Set COLON1 STRSLICE(TIME_STR, 2, 3)\n    Set COLON2 STRSLICE(TIME_STR, 5, 6)\n    \n    If (COLON1 != \":\" || COLON2 != \":\") {\n        Return False\n    }\n    \n    // \u{68c0}\u{67e5}\u{65f6}\u{5206}\u{79d2}\u{662f}\u{5426}\u{90fd}\u{662f}\u{6570}\u{5b57}\n    Set I 0\n    While (I < LEN) {\n        If (I != 2 && I != 5) {\n            Set CHAR STRSLICE(TIME_STR, I, I + 1)\n            If (CHAR < \"0\" || CHAR > \"9\") {\n                Return False\n            }\n        }\n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n// ==================== \u{7528}\u{6237}\u{540d}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{7528}\u{6237}\u{540d}\u{ff08}3-20\u{4f4d}\u{ff0c}\u{5b57}\u{6bcd}\u{6570}\u{5b57}\u{4e0b}\u{5212}\u{7ebf}\u{ff09}\nFunc VALIDATE_USERNAME(USERNAME) {\n    Set LEN STRLEN(USERNAME)\n    \n    If (LEN < 3 || LEN > 20) {\n        Return False\n    }\n    \n    Set I 0\n    While (I < LEN) {\n        Set CHAR STRSLICE(USERNAME, I, I + 1)\n        Set IS_ALPHA ((CHAR >= \"a\" && CHAR <= \"z\") || (CHAR >= \"A\" && CHAR <= \"Z\"))\n        Set IS_DIGIT (CHAR >= \"0\" && CHAR <= \"9\")\n        Set IS_UNDERSCORE (CHAR == \"_\")\n        \n        If (!IS_ALPHA && !IS_DIGIT && !IS_UNDERSCORE) {\n            Return False\n        }\n        \n        Set I (I + 1)\n    }\n    \n    Return True\n}\n\n";
Expand description

数据验证库