UNPKG

pixiu-number-toolkit

Version:
1 lines 29.1 kB
{"version":3,"sources":["../src/validation/index.ts"],"names":["isValidThousandSeparatedNumber","value","options","buildRegex","REGEX","isValidNumber","isValidPositiveInteger","isValidNegativeInteger","isValidNonPositiveInteger","isValidFloat","isValidBlank","areAllElementsNumbers","array","item","isValidNumeric","areAllElementsNumeric","isValidPositiveFloat","isValidNegativeFloat","isValidNonPositiveFloat","isValidNonNegativeFloat","isValidEmail","isValidIP","isValidSubnetMask","isValidURL","isValidChinese","isValidChineseName","isValidChinesePostalCode","isValidChineseMobile","isValidChineseTel","isValidChineseBankCard","cardNumber","sum","isEven","i","digit","isValidChineseTaxNumber","isValidAccount","isValidChineseCharacters","isValidDecimalScientificNotation","isValidEnglishLetter","isValidLowercaseEnglishLetter","isValidUppercaseEnglishLetter","isValidHexColor","isValidMacAddress","isValidChineseIdCard","id","weight","validate","idArray","index","isValidNewEnergyLicensePlate","isValidNonNewEnergyLicensePlate","isValidLicensePlate","hasNoSpecialCharacters","containsEmoji","isValidIPv4","isValidChineseIDCard1","isValidChineseIDCard2","isValidUnifiedSocialCreditIdentifierStrict","isValidUnifiedSocialCreditIdentifierLoose","isValidFileExtension","filename","allowedExtensions"],"mappings":"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","file":"chunk-PSPFILUX.cjs","sourcesContent":["import { buildRegex, REGEX } from '../constants/regex';\r\nimport { RegexOptions } from '../../types/common';\r\n\r\n/**\r\n * 判断是否为千分位格式\r\n * @param value 要判断的字符串\r\n * @param options\r\n * @returns 如果value为千分位格式,返回true;否则返回false。\r\n */\r\nexport function isValidThousandSeparatedNumber(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n) {\r\n return buildRegex(REGEX.THOUSAND_SEPARATED_NUMBER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为纯数字\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是纯数字时返回 true,否则返回 false\r\n */\r\nexport function isValidNumber(value: string, options: RegexOptions = { strict: true }): boolean {\r\n return buildRegex(REGEX.NUMBER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为正整数\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是正整数时返回 true,否则返回 false\r\n */\r\nexport function isValidPositiveInteger(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.POSITIVE_INTEGER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为负整数\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是负整数时返回 true,否则返回 false\r\n */\r\nexport function isValidNegativeInteger(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.NEGATIVE_INTEGER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为非正整数\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是非正整数时返回 true,否则返回 false\r\n */\r\nexport function isValidNonPositiveInteger(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.NON_POSITIVE_INTEGER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为浮点数\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是浮点数时返回 true,否则返回 false\r\n */\r\nexport function isValidFloat(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.FLOAT, options).test(value);\r\n}\r\n\r\n\r\n/**\r\n * 判断字符串是否为空或只包含空格\r\n * @param {string} value - 待检查的字符串\r\n * @param options\r\n * @returns {boolean} 是空字符串或只包含空格时返回 true,否则返回 false\r\n */\r\nexport function isValidBlank(value: string, options: RegexOptions = { strict: true }): boolean {\r\n return !value || buildRegex(REGEX.BLANK, options).test(value);\r\n}\r\n\r\n\r\n/**\r\n * 判断数组中的所有元素是否都是数字\r\n * @returns {boolean} 如果数组中的所有元素都是数字,返回 true,否则返回 false\r\n * @param array\r\n */\r\nexport function areAllElementsNumbers(\r\n array: any[],\r\n): boolean {\r\n if (array.length === 0) {\r\n return false;\r\n }\r\n return array.every((item) => isValidNumber(item));\r\n}\r\n\r\n/**\r\n * 判断参数是否为数字或字符串数字\r\n * @param {string | number} value - 待检查的参数\r\n * @returns {boolean} 是数字或字符串数字时返回 true,否则返回 false\r\n */\r\nexport function isValidNumeric(value: string | number): boolean {\r\n return (!Number.isNaN(value) && typeof value === 'number') ||\r\n (!Number.isNaN(Number.parseFloat(value as any)) &&\r\n !Number.isNaN((value as any) - 0));\r\n}\r\n\r\n/**\r\n * 判断数组中的所有元素是否都是数字或字符串数字\r\n * @returns {boolean} 如果数组中的所有元素都是数字,返回 true,否则返回 false\r\n * @param array\r\n */\r\nexport function areAllElementsNumeric(array: any[]): boolean {\r\n if (array.length === 0) {\r\n return false;\r\n }\r\n return array.every((item) => isValidNumeric(item));\r\n}\r\n\r\n/**\r\n * 判断是否为正浮点数\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是正浮点数时返回 true,否则返回 false\r\n */\r\nexport function isValidPositiveFloat(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.POSITIVE_FLOAT, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为负浮点数\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是负浮点数时返回 true,否则返回 false\r\n */\r\nexport function isValidNegativeFloat(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.NEGATIVE_FLOAT, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为非正浮点数\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是非正浮点数时返回 true,否则返回 false\r\n */\r\nexport function isValidNonPositiveFloat(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.NON_POSITIVE_FLOAT, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为非负浮点数\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是非负浮点数时返回 true,否则返回 false\r\n */\r\nexport function isValidNonNegativeFloat(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.NON_NEGATIVE_FLOAT, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为电子邮件\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是电子邮件时返回 true,否则返回 false\r\n */\r\nexport function isValidEmail(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.EMAIL, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为网址\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是网址时返回 true,否则返回 false\r\n */\r\nexport function isValidIP(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.IP_ADDRESS, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为子网掩码\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是子网掩码时返回 true,否则返回 false\r\n */\r\nexport function isValidSubnetMask(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.SUBNET_MASK, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为URL\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是URL时返回 true,否则返回 false\r\n */\r\nexport function isValidURL(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.URL, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为中文\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是中文时返回 true,否则返回 false\r\n */\r\nexport function isValidChinese(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为中文姓名\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是中文姓名时返回 true,否则返回 false\r\n */\r\nexport function isValidChineseName(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE_NAME, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为中国邮政编码\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是中国邮政编码时返回 true,否则返回 false\r\n */\r\nexport function isValidChinesePostalCode(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE_POSTAL_CODE, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为中国手机号\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是中国手机号时返回 true,否则返回 false\r\n */\r\nexport function isValidChineseMobile(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE_MOBILE, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为中国固话号码\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是中国固话号码时返回 true,否则返回 false\r\n */\r\nexport function isValidChineseTel(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE_TEL, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为中国银行卡号\r\n * @param cardNumber - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是中国银行卡号时返回 true,否则返回 false\r\n */\r\nexport function isValidChineseBankCard(cardNumber: string,\r\n options: RegexOptions = { strict: true }) {\r\n if (!buildRegex(REGEX.CHINESE_BANK_CARD, options).test(cardNumber)) return false;\r\n\r\n let sum = 0;\r\n let isEven = false;\r\n for (let i = cardNumber.length - 1; i >= 0; i--) {\r\n let digit = parseInt(cardNumber.charAt(i), 10);\r\n\r\n if (isEven) {\r\n digit *= 2;\r\n if (digit > 9) digit -= 9;\r\n }\r\n\r\n sum += digit;\r\n isEven = !isEven;\r\n }\r\n\r\n return sum % 10 === 0;\r\n}\r\n\r\n/**\r\n * 判断是否为中国税号\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是中国税号时返回 true,否则返回 false\r\n */\r\nexport function isValidChineseTaxNumber(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE_TAX_NUMBER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为有效的账户名\r\n * 以字母开头,允许5-16个字节,\r\n * 允许字母、数字和下划线组合\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是有效的账户名时返回 true,否则返回 false\r\n */\r\nexport function isValidAccount(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.ACCOUNT, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为中文字符\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是中文字符时返回 true,否则返回 false\r\n */\r\nexport function isValidChineseCharacters(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE_CHARACTERS, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为十进制数(支持科学记数法)\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是十进制数时返回 true,否则返回 false\r\n */\r\nexport function isValidDecimalScientificNotation(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.DECIMAL_SCIENTIFIC_NOTATION, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为英文字母\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是英文字母时返回 true,否则返回 false\r\n */\r\nexport function isValidEnglishLetter(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.ENGLISH_LETTER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为小写英文字母\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是小写英文字母时返回 true,否则返回 false\r\n */\r\nexport function isValidLowercaseEnglishLetter(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.LOWERCASE_ENGLISH_LETTER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为大写英文字母\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是大写英文字母时返回 true,否则返回 false\r\n */\r\nexport function isValidUppercaseEnglishLetter(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.UPPERCASE_ENGLISH_LETTER, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为十六进制颜色\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是十六进制颜色时返回 true,否则返回 false\r\n */\r\nexport function isValidHexColor(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.HEX_COLOR, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为MAC地址\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是MAC地址时返回 true,否则返回 false\r\n */\r\nexport function isValidMacAddress(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.MAC_ADDRESS, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为身份证号码\r\n * @param id 身份证号码\r\n * @param options\r\n * @returns 如果是身份证号码,返回true;否则返回false。\r\n */\r\nexport function isValidChineseIdCard(\r\n id: string,\r\n options: RegexOptions = { strict: true },\r\n) {\r\n if (!buildRegex(REGEX.CHINESE_ID_CARD, options).test(id)) {\r\n return false;\r\n }\r\n\r\n const weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\r\n const validate = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\r\n const idArray = [...id];\r\n let sum = 0;\r\n\r\n for (let index = 0; index < 17; index++) {\r\n sum += Number.parseInt(idArray[index], 10) * weight[index];\r\n }\r\n\r\n return validate[sum % 11].toUpperCase() === idArray[17].toUpperCase();\r\n}\r\n\r\n/**\r\n * 判断是否为有效的新能源车牌号\r\n * @param value - 待检查的车牌号\r\n * @param options\r\n * @returns {boolean} 是有效的新能源车牌号时返回 true,否则返回 false\r\n */\r\nexport function isValidNewEnergyLicensePlate(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.NEW_ENERGY_LICENSE_PLATE, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为有效的非新能源车牌号\r\n * @param value - 待检查的车牌号\r\n * @param options\r\n * @returns {boolean} 是有效的非新能源车牌号时返回 true,否则返回 false\r\n */\r\nexport function isValidNonNewEnergyLicensePlate(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.NON_NEW_ENERGY_LICENSE_PLATE, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为有效的车牌号(包括新能源和非新能源)\r\n * @param value - 待检查的车牌号\r\n * @param options\r\n * @returns {boolean} 是有效的车牌号时返回 true,否则返回 false\r\n */\r\nexport function isValidLicensePlate(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.COMBINED_LICENSE_PLATE, options).test(value);\r\n}\r\n\r\n/**\r\n * 检查字符串是否不包含特殊字符\r\n * @param value - 待检查的字符串\r\n * @param options\r\n * @returns {boolean} 不包含特殊字符时返回 true,否则返回 false\r\n */\r\nexport function hasNoSpecialCharacters(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.NON_SPECIAL_CHARACTERS, options).test(value);\r\n}\r\n\r\n/**\r\n * 检查字符串是否包含表情符号\r\n * @param value - 待检查的字符串\r\n * @param options\r\n * @returns {boolean} 包含表情符号时返回 true,否则返回 false\r\n */\r\nexport function containsEmoji(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.EMOJI, options).test(value);\r\n}\r\n\r\n/**\r\n * 验证是否为有效的 IPv4 地址\r\n * @param value - 待验证的 IP 地址\r\n * @param options\r\n * @returns {boolean} 是有效的 IPv4 地址时返回 true,否则返回 false\r\n */\r\nexport function isValidIPv4(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.IPV4, options).test(value);\r\n}\r\n\r\n/**\r\n * 验证是否为有效的中国身份证号(一代)\r\n * @param value - 待验证的身份证号\r\n * @param options\r\n * @returns {boolean} 是有效的一代身份证号时返回 true,否则返回 false\r\n */\r\nexport function isValidChineseIDCard1(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE_ID_CARD_1, options).test(value);\r\n}\r\n\r\n/**\r\n * 验证是否为有效的中国身份证号(二代)\r\n * @param value - 待验证的身份证号\r\n * @param options\r\n * @returns {boolean} 是有效的二代身份证号时返回 true,否则返回 false\r\n */\r\nexport function isValidChineseIDCard2(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.CHINESE_ID_CARD_2, options).test(value);\r\n}\r\n\r\n/**\r\n * 判断是否为统一社会信用代码(严格模式)\r\n * @param value - 待检查的参数\r\n * @param options\r\n * @returns {boolean} 是统一社会信用代码时返回 true,否则返回 false\r\n */\r\nexport function isValidUnifiedSocialCreditIdentifierStrict(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.UNIFIED_SOCIAL_CREDIT_IDENTIFIER, options).test(value);\r\n}\r\n\r\n/**\r\n * 验证是否为有效的统一社会信用代码(宽松模式)\r\n * @param value - 待验证的统一社会信用代码\r\n * @param options\r\n * @returns {boolean} 是有效的统一社会信用代码时返回 true,否则返回 false\r\n */\r\nexport function isValidUnifiedSocialCreditIdentifierLoose(\r\n value: string,\r\n options: RegexOptions = { strict: true },\r\n): boolean {\r\n return buildRegex(REGEX.LOOSE_UNIFIED_SOCIAL_CREDIT_IDENTIFIER, options).test(value);\r\n}\r\n\r\n/**\r\n * 验证是否为有效的文件扩展名\r\n * @param filename - 待验证的文件名\r\n * @param allowedExtensions - 允许的文件扩展名\r\n * @returns {boolean} 是有效的文件扩展名时返回 true,否则返回 false\r\n */\r\nexport function isValidFileExtension(filename: string, allowedExtensions: string[]) {\r\n const regex = new RegExp(`\\\\.(${allowedExtensions.join('|')})$`, 'i');\r\n return regex.test(filename);\r\n}\r\n"]}