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
数据验证库