文件最后提交记录最后更新时间
3 年前
1 年前
2 年前
3 年前
1 年前
3 年前
2 年前
1 年前
2 年前
1 年前
1 年前
1 年前
3 年前
2 年前
3 年前
3 年前
3 年前
3 年前
README

validator

简介

本demo是基于openHarmony系统下使用三方js库validator.js,validator.js是字符串验证器和清理器的库。

下载安装

ohpm install validator
ohpm install @types/validator --save-dev //import validator 的时候语法报错。其原因是validator包内不含类型声明,需要 @types/validator 下载这个包的声明文件,从而解决语法的报错。

使用说明

import validator from 'validator';

let result:boolean = validator.isBase32("ZG======")
let result1:boolean = validator.isAscii("foobar")

接口说明

validator.js

以下是当前可用的验证器列表。

验证器 描述
contains(str, seed [, options]) 检查字符串是否包含seed。

options 是一个默认为 { ignoreCase: false, minOccurrences: 1 }的对象。
Options:
ignoreCase: 进行比较时忽略大小写,默认为false。
minOccurences: 字符串中seed的最小出现次数。默认值为1。
equals(str, comparison) 检查字符串是否与比较结果匹配。
isAfter(str [, options]) 检查字符串是否在指定日期之后。

options 是一个默认为 { comparisonDate: Date().toString() }的对象。
Options:
comparisonDate: 要进行比较的日期。默认为 Date().toString() (现在).
isAlpha(str [, locale, options]) 检查字符串是否仅包含字母(a-zA-Z)。

locale 是其中之一 ['ar', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB', 'ar-LY', 'ar-MA', 'ar-QA', 'ar-QM', 'ar-SA', 'ar-SD', 'ar-SY', 'ar-TN', 'ar-YE', 'bg-BG', 'bn', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-HK', 'en-IN', 'en-NZ', 'en-US', 'en-ZA', 'en-ZM', 'es-ES', 'fa-IR', 'fi-FI', 'fr-CA', 'fr-FR', 'he', 'hi-IN', 'hu-HU', 'it-IT', 'ko-KR', 'ja-JP', 'ku-IQ', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'si-LK', 'sl-SI', 'sk-SK', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA'] 并且默认为 en-US. Locale 列表是 validator.isAlphaLocales. options 是一个可选对象,可以提供以下键: ignore, 它可以是要忽略的字符的String或RegExp,例如 " -" 将忽略空格和 -。
isAlphanumeric(str [, locale, options]) 检查字符串是否只包含字母和数字(a-zA-Z0-9)。

locale 是其中之一 ['ar', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB', 'ar-LY', 'ar-MA', 'ar-QA', 'ar-QM', 'ar-SA', 'ar-SD', 'ar-SY', 'ar-TN', 'ar-YE', 'bn', 'bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-HK', 'en-IN', 'en-NZ', 'en-US', 'en-ZA', 'en-ZM', 'es-ES', 'fa-IR', 'fi-FI', 'fr-CA', 'fr-FR', 'he', 'hi-IN', 'hu-HU', 'it-IT', 'ko-KR', 'ja-JP','ku-IQ', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'si-LK', 'sl-SI', 'sk-SK', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA'])并且默认为 en-US. Locale 列表是 validator.isAlphanumericLocales. options 是一个可选对象,可以提供以下键: ignore, 它可以是要忽略的字符的String或RegExp,例如 " -" 将忽略空格和 -。
isAscii(str) 检查字符串是否仅包含ASCII字符。
isBase32(str [, options]) 检查字符串是否为base32编码。 options 是一个默认为 { crockford: false }的对象。
crockford 为true时,它使用 Crockford's base32 alternative 测试给定的base32编码字符串。
isBase58(str) 检查字符串是否为base58编码。
isBase64(str [, options]) 检查字符串是否为base64编码。 options 是一个可选项,默认为 { urlSafe: false }
urlSafe 为 true 时, 它测试给定的base64编码字符串是 url safe
isBefore(str [, date]) 检查字符串是否为指定日期之前的日期。
isBIC(str) 检查字符串是BIC(银行识别码)还是SWIFT代码。
isBoolean(str [, options]) 检查字符串是否为布尔值。
options 是一个默认为 { loose: false }的对象。 如果 loose 设置为 false, 验证器将严格匹配 ['true', 'false', '0', '1']. 如果 loose 设置为 true, 验证器还将匹配“yes”、“no”,并且将匹配任何情况下的有效布尔字符串。 (例如: ['true', 'True', 'TRUE']).
isBtcAddress(str) 检查字符串是否为有效的BTC地址。
isByteLength(str [, options]) 检查字符串的长度(UTF-8字节)是否在某个范围内。

options 是一个默认为 { min: 0, max: undefined }的对象。
isCreditCard(str [, options]) 检查字符串是否为信用卡号。

options 是一个可选对象,可以使用以下键提供: provider 是一个可选键,其值应为字符串, 并定义了发行信用卡的公司。有效值包括 ['amex', 'dinersclub', 'discover', 'jcb', 'mastercard', 'unionpay', 'visa'] 或空白将检查任何提供商。
isCurrency(str [, options]) 检查字符串是否为有效的货币金额。

options 是一个默认为 { symbol: '$', require_symbol: false, allow_space_after_symbol: false, symbol_after_digits: false, allow_negatives: true, parens_for_negatives: false, negative_sign_before_digits: false, negative_sign_after_digits: false, allow_negative_sign_placeholder: false, thousands_separator: ',', decimal_separator: '.', allow_decimal: true, require_decimal: false, digits_after_decimal: [2], allow_space_after_digits: false }的对象。
注意: 数组 digits_after_decimal 填充了允许的确切位数,而不是范围,例如范围1到3将被给定为[1,2,3]。
isDataURI(str) 检查字符串是否为 data uri format
isDate(str [, options]) 检查字符串是否为有效日期。 例如: [2002-07-15, new Date()].

options 是一个可以包含键 format, strictMode and/or delimiters的对象。

format 是一个默认为 YYYY/MM/DD的字符串。

strictMode 是一个默认为 false的布尔值。 如果 strictMode 设置为 true, 验证器将拒绝不同于 format的字符串。

delimiters 是一个允许的日期分隔符数组,默认为['/', '-']`。
isDecimal(str [, options]) 检查字符串是否表示十进制数,例如0.1、.3、1.1、1.00003、4.0等。

options 是一个默认为 {force_decimal: false, decimal_digits: '1,', locale: 'en-US'}的对象。

locale 确定十进制分隔符,是 ['ar', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB', 'ar-LY', 'ar-MA', 'ar-QA', 'ar-QM', 'ar-SA', 'ar-SD', 'ar-SY', 'ar-TN', 'ar-YE', 'bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-HK', 'en-IN', 'en-NZ', 'en-US', 'en-ZA', 'en-ZM', 'es-ES', 'fa', 'fa-AF', 'fa-IR', 'fr-FR', 'fr-CA', 'hu-HU', 'id-ID', 'it-IT', 'ku-IQ', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pl-Pl', 'pt-BR', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN']之一。
注意: decimal_digits 被给定为一个范围,如'1,3',一个特定值,如'3'或min',如'1'。
isDivisibleBy(str, number) 检查字符串是否是一个可以被另一个整除的数字。
isEAN(str) 检查字符串是否为 EAN (European Article Number)
isEmail(str [, options]) 检查字符串是否为电子邮件。

options 是一个默认为 { allow_display_name: false, require_display_name: false, allow_utf8_local_part: true, require_tld: true, allow_ip_domain: false, domain_specific_validation: false, blacklisted_chars: '', host_blacklist: [] }的对象。 如果 allow_display_name 设置为 true, 验证器还将匹配 Display Name <email-address>. 如果 require_display_name 设置为 true, 验证器将拒绝没有 Display Name <email-address>格式的字符串。 如果 allow_utf8_local_part 设置为 false, 验证器将不允许在电子邮件地址的本地部分中使用任何非英语UTF8字符。 如果 require_tld 设置为 false, 域中没有TLD的电子邮件地址也将匹配。 如果 ignore_max_length 设置为 true, 验证器不会检查电子邮件的标准最大长度。 如果 allow_ip_domain 设置为 true, 验证器将允许主机部分中的IP地址。 如果 domain_specific_validation 是 true, 将启用一些额外的验证,例如,禁止某些被Gmail拒绝的语法有效的电子邮件地址。 如果 blacklisted_chars 接收一个字符串, 那么验证器将拒绝在名称部分包含字符串中任何字符的电子邮件。 如果 host_blacklist 被设置为字符串数组,并且 @ 符号之后的电子邮件部分与其中定义的字符串之一匹配后,电子邮件的部分将失败。 如果 host_whitelist 被设置为一个字符串数组,并且电子邮件中 @ 符号后的部分与其中定义的任何字符串都不匹配,则验证失败。
isEmpty(str [, options]) 检查字符串的长度是否为零。

options 是一个默认为 { ignore_whitespace: false }的对象。
isEthereumAddress(str) 检查字符串是否为 Ethereum 地址。不验证地址校验和。
isFloat(str [, options]) 检查字符串是否为浮点值。

options 是一个对象,它可以包含 min, max, gt和/或 lt 来验证 float 是否在边界内 (例如: { min: 7.22, max: 9.55 }) 它也有 locale 作为选项。

minmax 分别相当于 '大于或等于' and '小于或等于', 而 gt and lt 是它们的严格对应物。

locale 设置确定十进制分隔符,并且是 ['ar', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB', 'ar-LY', 'ar-MA', 'ar-QA', 'ar-QM', 'ar-SA', 'ar-SD', 'ar-SY', 'ar-TN', 'ar-YE', 'bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'en-AU', 'en-GB', 'en-HK', 'en-IN', 'en-NZ', 'en-US', 'en-ZA', 'en-ZM', 'es-ES', 'fr-CA', 'fr-FR', 'hu-HU', 'it-IT', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA']之一。 Locale 列表是 validator.isFloatLocales
isFQDN(str [, options]) 检查字符串是否是完全限定的域名(例如domain.com)。

options 是一个默认为 { require_tld: true, allow_underscores: false, allow_trailing_dot: false, allow_numeric_tld: false, allow_wildcard: false, ignore_max_length: false }的对象。 如果 allow_wildcard 设置为 true, 则验证器将允许域以 *.开头 (例如 *.example.com*.shop.example.com)。
isFullWidth(str) 检查字符串是否包含任何全角字符。
isHalfWidth(str) 检查字符串是否包含任何半角字符。
isHash(str, algorithm) 检查字符串是否是算法类型的哈希。

Algorithm 是 ['crc32', 'crc32b', 'md4', 'md5', 'ripemd128', 'ripemd160', 'sha1', 'sha256', 'sha384', 'sha512', 'tiger128', 'tiger160', 'tiger192']之一.
isHexadecimal(str) 检查字符串是否为十六进制数字。
isHexColor(str) 检查字符串是否为十六进制颜色。
isHSL(str) 检查字符串是否是基于 CSS Colors Level 4 specification 的HSL (色调、饱和度、亮度、可选alpha)颜色。

支持逗号分隔格式。支持空格分隔格式,少数边缘情况除外 (例如: hsl(200grad+.1%62%/1)).
isIBAN(str) 检查字符串是否为IBAN(国际银行账号)。
isIdentityCard(str [, locale]) 检查字符串是否为有效的身份证代码。

locale['LK', 'PL', 'ES', 'FI', 'IN', 'IT', 'IR', 'MZ', 'NO', 'TH', 'zh-TW', 'he-IL', 'ar-LY', 'ar-TN', 'zh-CN', 'zh-HK']'any'之一. 如果使用 'any', 函数将检查是否有任何区域设置匹配。

默认为 'any'.
isIMEI(str [, options])) 检查该字符串是否是有效的 IMEI 号码。 IMEI的格式应为##############或###-#######-##########-。

options 是一个可以包含 allow_hyphens的对象。 默认为第一种格式。 如果 allow_hyphens 设置为 true, 那么验证器将验证第二种格式。
isIn(str, values) 检查字符串是否在允许值的数组中。
isInt(str [, options]) 检查字符串是否为整数。

options 是一个对象,它可以包含键 min 和/或 max以检查整数是否在边界内 (例如 { min: 10, max: 99 }). options 还可以包含键 allow_leading_zeroes, 当设置为 false时, 该键将不允许带前导零的整数值 (例如 { allow_leading_zeroes: false }). 最后, options 还可以包含键 gt 和/或 lt 它们将强制整数分别大于或小于所提供的值 (例如,对于1和4之间的数字, {gt: 1, lt: 4})。
isIP(str [, version]) 检查字符串是否为IP(版本4或6)。
isIPRange(str [, version]) 检查字符串是否为IP范围(版本4或6)。
isISBN(str [, options]) 检查字符串是否为ISBN。 ISBN

options 是一个没有默认值的对象。
Options:
version:要与之比较的ISBN版本。可接受的值为“10”和“13”。 如果没有提供,将对两者进行测试。
isISIN(str) 检查字符串是否为 ISIN (股票/安全标识符)。
isISO6391(str) 检查字符串是否为有效的 ISO 639-1语言代码。
isISO8601(str [, options]) 检查字符串是否为有效的 ISO 8601 日期。
options是一个默认为 { strict: false, strictSeparator: false }的对象。 如果 strict 是 true, 则具有无效日期的日期字符串(如2009-02-29)将无效。 如果 strictSeparator 是 true, 则日期和时间由T以外的任何字符分隔的日期字符串将无效。
isISO31661Alpha2(str) 检查字符串是否为有效的 ISO 3166-1 alpha-2 官方指定的国家代码。
isISO31661Alpha3(str) 检查字符串是否为有效的 ISO 3166-1 alpha-3 官方指定的国家代码。
isISO4217(str) 检查字符串是否为有效的 ISO 4217 官方指定的国家代码。
isISRC(str) 检查字符串是否为 ISRC
isISSN(str [, options]) 检查字符串是否为 ISSN

options 是一个默认为 { case_sensitive: false, require_hyphen: false }的对象。 如果 case_sensitive 是 true, 则拒绝使用小写 'x' 作为校验位的ISSN。
isJSON(str [, options]) 检查字符串是否为有效的 JSON (注意: 使用 JSON.parse).

options 是一个默认为 { allow_primitives: false }的对象。 如果 allow_primitives 是 true, 则接受基元 'true', 'false' and 'null' 作为有效的JSON值。
isJWT(str) 检查字符串是否为有效的 JWT token.
isLatLong(str [, options]) 检查字符串是否是格式为 lat,long or lat, long的有效经纬度坐标。

options 是一个默认为 { checkDMS: false }的对象。 将 checkDMS 传递为 true 以验证 DMS(度、分和秒) 纬度-经度格式。
isLength(str [, options]) 检查字符串的长度是否在某个范围内。

options 是一个默认为 { min: 0, max: undefined }的对象。 注意: 此函数会考虑代理项对。
isLicensePlate(str, locale) 检查字符串是否与某个国家的车牌格式相匹配。

locale['cs-CZ', 'de-DE', 'de-LI', 'en-IN', 'es-AR', 'hu-HU', 'pt-BR', 'pt-PT', 'sq-AL', 'sv-SE']'any'之一。
isLocale(str) 检查字符串是否为区域设置。
isLowercase(str) 检查字符串是否为小写。
isLuhnNumber(str) 检查字符串是否通过了 Luhn 算法检查
isMACAddress(str [, options]) 检查字符串是否为 MAC 地址。

options 是一个默认为 { no_separators: false }的对象。 如果 no_separators 是 true, 则验证器将允许不使用分隔符的MAC地址。 此外, 它还允许使用连字符、空格或点,例如,'01 02 03 04 05 ab', '01-02-03-04-05-ab' 或 '0102.0304.05ab'. 这些 options 还允许 eui 属性指定是否需要根据 EUI-48 或 EUI-64进行验证。 eui的可接受值为: 48, 64。
isMagnetURI(str) 检查字符串是否为 Magnet URI format
isMD5(str) 检查字符串是否为 MD5 hash.

请注意,您也可以使用 isHash(str, 'md5') 函数。 请记住,与其他算法(例如SHA)相比,MD5有一些冲突弱点。
isMimeType(str) 检查字符串是否与有效的 MIME type 格式匹配。
isMobilePhone(str [, locale [, options]]) 检查字符串是否是移动电话号码,

locale 是一个区域设置数组 (例如 ['sk-SK', 'sr-RS']) 或其中之一 ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-EH', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-PS', 'ar-SA', 'ar-SY', 'ar-TN', 'ar-YE', 'az-AZ', 'az-LB', 'az-LY', 'be-BY', 'bg-BG', 'bn-BD', 'bs-BA', 'ca-AD', 'cs-CZ', 'da-DK', 'de-AT', 'de-CH', 'de-DE', 'de-LU', 'dv-MV', 'dz-BT', 'el-CY', 'el-GR', 'en-AG', 'en-AI', 'en-AU', 'en-BM', 'en-BS', 'en-BW', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-GY', 'en-HK', 'en-IE', 'en-IN', 'en-JM', 'en-KE', 'en-KI', 'en-KN', 'en-LS', 'en-MO', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PG', 'en-PH', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-SS', 'en-TZ', 'en-UG', 'en-US', 'en-ZA', 'en-ZM', 'en-ZW', 'es-AR', 'es-BO', 'es-CL', 'es-CO', 'es-CR', 'es-CU', 'es-DO', 'es-EC', 'es-ES', 'es-HN', 'es-MX', 'es-NI', 'es-PA', 'es-PE', 'es-PY', 'es-SV', 'es-UY', 'es-VE', 'et-EE', 'fa-AF', 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-BF', 'fr-BJ', 'fr-CD', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-PF', 'fr-RE', 'ga-IE', 'he-IL', 'hu-HU', 'id-ID', 'ir-IR', 'it-IT', 'it-SM', 'ja-JP', 'ka-GE', 'kk-KZ', 'kl-GL', 'ko-KR', 'ky-KG', 'lt-LT', 'mg-MG', 'mn-MN', 'ms-MY', 'my-MM', 'mz-MZ', 'nb-NO', 'ne-NP', 'nl-AW', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-AO', 'pt-BR', 'pt-PT', 'ro-Md', 'ro-RO', 'ru-RU', 'si-LK', 'sk-SK', 'sl-SI', 'sq-AL', 'sr-RS', 'sv-SE', 'tg-TJ', 'th-TH', 'tk-TM', 'tr-TR', 'uk-UA', 'uz-UZ', 'vi-VN', 'zh-CN', 'zh-HK', 'zh-MO', 'zh-TW'] 或默认为 'any'. 如果使用 'any'或 false 值, 函数将检查是否有任何 locales 匹配 ).

options 是一个可选对象,可以使用以下键提供: strictMode, 如果设置为 true, 则手机号码必须提供国家/地区代码,因此必须以 +开头。 Locale 列表是 validator.isMobilePhoneLocales
isMongoId(str) 检查该字符串是否是 MongoDB ObjectId 的有效十六进制编码表示。
isMultibyte(str) 检查字符串是否包含一个或多个多字节字符。
isNumeric(str [, options]) 检查字符串是否只包含数字。

options 是一个默认为 { no_symbols: false }的对象, 它也有 locale 作为一个选项. 如果 no_symbols 是 true, 验证器将拒绝以符号为特征的数字字符串 (例如 +, -, 或 .).

locale 确定十进制分隔符,并且是 ['ar', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB', 'ar-LY', 'ar-MA', 'ar-QA', 'ar-QM', 'ar-SA', 'ar-SD', 'ar-SY', 'ar-TN', 'ar-YE', 'bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'en-AU', 'en-GB', 'en-HK', 'en-IN', 'en-NZ', 'en-US', 'en-ZA', 'en-ZM', 'es-ES', 'fr-FR', 'fr-CA', 'hu-HU', 'it-IT', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA']其中之一。
isOctal(str) 检查字符串是否为有效的八进制数。
isPassportNumber(str, countryCode) 检查字符串是否是有效的护照号码。

countryCode['AM', 'AR', 'AT', 'AU', 'AZ', 'BE', 'BG', 'BY', 'BR', 'CA', 'CH', 'CN', 'CY', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IN', 'IR', 'ID', 'IS', 'IT', 'JM', 'JP', 'KR', 'KZ', 'LI', 'LT', 'LU', 'LV', 'LY', 'MT', 'MX', 'MY', 'MZ', 'NL', 'NZ', 'PH', 'PK', 'PL', 'PT', 'RO', 'RU', 'SE', 'SL', 'SK', 'TH', 'TR', 'UA', 'US']其中之一。
isPort(str) 检查字符串是否为有效的端口号。
isPostalCode(str, locale) 检查字符串是否为邮政编码。

locale['AD', 'AT', 'AU', 'AZ', 'BA', 'BE', 'BG', 'BR', 'BY', 'CA', 'CH', 'CN', 'CZ', 'DE', 'DK', 'DO', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'KR', 'LI', 'LK', 'LT', 'LU', 'LV', 'MG', 'MT', 'MX', 'MY', 'NL', 'NO', 'NP', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SG', 'SI', 'SK', 'TH', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM']'any'其中之一。 如果使用 'any', 函数将检查是否有任何 locales 匹配。 Locale 列表是 validator.isPostalCodeLocales.
isRFC3339(str) 检查字符串是否为有效的 RFC 3339 日期。
isRgbColor(str [, includePercentValues]) 检查字符串是rgb颜色还是rgba颜色。

includePercentValues 默认为 true。 如果您不想允许设置带有百分比的 rgbrgba 值, 如 rgb(5%,5%,5%), 或 rgba(90%,90%,90%,.3), 请将其设置为 false。
isSemVer(str) 检查该字符串是否为语义版本控制规范(SemVer)。
isSurrogatePair(str) 检查字符串是否包含任何代理项对字符。
isUppercase(str) 检查字符串是否为大写。
isSlug(str) 检查字符串是否为slug类型。
isStrongPassword(str [, options]) 检查该字符串是否可以被视为强密码。 允许自定义要求或评分规则。 如果 returnScore 是 true, 那么函数将返回密码的整数分数,而不是布尔值。
默认 options:
{ minLength: 8, minLowercase: 1, minUppercase: 1, minNumbers: 1, minSymbols: 1, returnScore: false, pointsPerUnique: 1, pointsPerRepeat: 0.5, pointsForContainingLower: 10, pointsForContainingUpper: 10, pointsForContainingNumber: 10, pointsForContainingSymbol: 10 }
isTime(str [, options]) 检查字符串是否为有效时间, 例如 [23:01:59, new Date().toLocaleTimeString()].

options 是一个对象,可以包含按键 hourFormatmode.

hourFormat 是一个键,默认为 'hour24'.

mode 是一个键,默认为 'default'.

hourFomat 可以包含值 'hour12''hour24', 'hour24' 将以24格式验证小时, 'hour12' 将以12格式验证小时。

mode 可以包含值 'default''withSeconds', 'default' 将验证 HH:MM 格式, 'withSeconds' 将验证 HH:MM:SS 格式。
isTaxID(str, locale) 检查该字符串是否为有效的税务识别号。 locale 默认是 en-US.

关于确切的TIN支持的更多信息,可以在 src/lib/isTaxID.js中找到。

支持的 locales: [ 'bg-BG', 'cs-CZ', 'de-AT', 'de-DE', 'dk-DK', 'el-CY', 'el-GR', 'en-CA', 'en-GB', 'en-IE', 'en-US', 'es-ES', 'et-EE', 'fi-FI', 'fr-BE', 'fr-CA', 'fr-FR', 'fr-LU', 'hr-HR', 'hu-HU', 'it-IT', 'lb-LU', 'lt-LT', 'lv-LV', 'mt-MT', 'nl-BE', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'sk-SK', 'sl-SI', 'sv-SE' ].
isURL(str [, options]) 检查字符串是否为URL。

options 是一个默认为{ protocols: ['http','https','ftp'], require_tld: true, require_protocol: false, require_host: true, require_port: false, require_valid_protocol: true, allow_underscores: false, host_whitelist: false, host_blacklist: false, allow_trailing_dot: false, allow_protocol_relative_urls: false, allow_fragments: true, allow_query_components: true, disallow_auth: false, validate_length: true }的对象。

require_protocol - 如果设置为true,则如果URL中不存在协议,则isURL将返回false。
require_valid_protocol - isURL 将检查协议选项中是否存在URL的协议。
protocols -使用此选项可以修改有效的协议。
require_host - 如果设置为false,isURL将不会检查URL中是否存在host。
require_port - 如果设置为true,isURL将检查URL中是否存在端口。
allow_protocol_relative_urls - 如果设置为true协议,则允许相对URL。
allow_fragments - 如果设置为false,则如果存在片段,isURL将返回false。
allow_query_components - 如果设置为false,则如果存在查询组件,isURL将返回false。
validate_length - 如果设置为false,isURL将跳过字符串长度验证 (2083个字符是IE最大URL长度)。
isUUID(str [, version]) 检查字符串是否为 UUID (版本 1, 2, 3, 4 或 5)。
isVariableWidth(str) 检查字符串是否包含全角字符和半角字符的混合物。
isVAT(str, countryCode) 如果可以对与 ISO 3166-1 alpha-2 匹配的给定国家代码进行验证,则检查该字符串是否为有效的 valid VAT number

countryCode['AL', 'AR', 'AT', 'AU', 'BE', 'BG', 'BO', 'BR', 'BY', 'CA', 'CH', 'CL', 'CO', 'CR', 'CY', 'CZ', 'DE', 'DK', 'DO', 'EC', 'EE', 'EL', 'ES', 'FI', 'FR', 'GB', 'GT', 'HN', 'HR', 'HU', 'ID', 'IE', 'IL', 'IN', 'IS', 'IT', 'KZ', 'LT', 'LU', 'LV', 'MK', 'MT', 'MX', 'NG', 'NI', 'NL', 'NO', 'NZ', 'PA', 'PE', 'PH', 'PL', 'PT', 'PY', 'RO', 'RS', 'RU', 'SA', 'SE', 'SI', 'SK', 'SM', 'SV', 'TR', 'UA', 'UY', 'UZ', 'VE']其中之一。
isWhitelisted(str, chars) 检查字符串是否仅由白名单 chars 中出现的字符组成。
matches(str, pattern [, modifiers]) 检查字符串是否与模式匹配。

匹配项 matches('foo', /foo/i)matches('foo', 'foo', 'i').

这是当前可用的清理器列表。

清理器 描述
blacklist(input, chars) 删除黑名单中出现的字符。这些字符是在RegExp中使用的,因此您需要转义一些字符,例如 blacklist(input, '\\[\\]').
escape(input) <, >, &, ', "/ 替换成 HTML 实体。
ltrim(input [, chars]) 从输入的左侧修剪字符。
normalizeEmail(email [, options]) 将电子邮件地址规范化。 (如果您想预先使用isEmail验证电子邮件,这不会验证输入是否为电子邮件)。

options 是一个具有以下关键点和默认值的对象 :
  • all_lowercase: true - 将所有电子邮件地址的本地部分(@符号之前)转换为小写。 请注意,这可能违反 RFC 5321 允许提供商以区分大小写的方式处理电子邮件地址的本地部分, (尽管在实践中大多数(但不是所有)提供商都不这样做)。根据 RFC 1035,电子邮件地址的域部分总是小写,因为它不区分大小写。
  • gmail_lowercase: true - 众所周知,gmail地址不区分大小写,因此即使 all_lowercase 设置为 false,此开关也允许降低它们的大小写。 请注意,当 all_lowercase 为 true时, 无论此设置的值如何,Gmail地址都会降低。
  • gmail_remove_dots: true: 从电子邮件地址的本地部分删除点,因为gmail会忽略它们(例如,“john.doe”和“johndoe”被认为是相等的)。
  • gmail_remove_subaddress: true: 通过删除“子地址”来规范地址,“子地址是“+”符号后面的部分(例如“foo+bar@gmail.com“变成”foo@gmail.com")。
  • gmail_convert_googlemaildotcom: true: 将域名为@googlemail.com的地址转换为@gmail.com,因为它们是等效的。
  • outlookdotcom_lowercase: true - 众所周知,Outlook.com地址(包括Windows Live和Hotmail)不区分大小写, 因此即使 all_lowercase 设置为 false,此开关也允许降低地址的大小写。请注意,当 all_lowercase 为 true时,无论此设置的值如何,Outlook.com地址都是小写的。
  • outlookdotcom_remove_subaddress: true: 通过删除“子地址”来规范地址,“子地址是“+”号后面的部分(例如“foo+bar@outlook.com“变成”foo@outlook.com").
  • yahoo_lowercase: true - 众所周知,yahoo Mail地址不区分大小写,因此即使 all_lowercase 设置为 false,此开关也允许降低它们的大小写。请注意,当 all_lowercase 为 true时, 无论此设置的值如何,Yahoo Mail地址都会降低。
  • yahoo_remove_subaddress: true: 通过删除“子地址”来规范地址,“子地址是”-“符号后面的部分(例如”foo-bar@yahoo.com“变成”foo@yahoo.com").
  • icloud_lowercase: true - 众所周知,icloud地址(包括MobileMe)不区分大小写,因此即使 all_lowercase 设置为 false,此开关也允许降低它们的大小写。 请注意,当 all_lowercase 为 true时, 无论此设置的值如何,iCloud地址都是小写的。
  • icloud_remove_subaddress: true: 通过删除“子地址”来规范地址,“子地址是“+”符号后面的部分(例如“foo+bar@icloud.com“变成”foo@icloud.com")。
rtrim(input [, chars]) 从输入的右侧修剪字符。
stripLow(input [, keep_new_lines]) 删除数值<32和127的字符,主要是控制字符。如果 keep_new_linestrue, 则保留换行符 (\n\r, 十六进制 0xA0xD). JavaScript中的Unicode-safe。
toBoolean(input [, strict]) 将输入字符串转换为布尔值。 除 '0', 'false'''之外的所有内容都返回 true。 在严格模式下,只有 '1''true' 返回 true
toDate(input) 将输入字符串转换为日期,如果输入不是日期,则转换为 null
toFloat(input) 将输入字符串转换为浮点,如果输入不是浮点,则转换为NaN
toInt(input [, radix]) 将输入字符串转换为整数,如果输入不是整数,则转换为 NaN
trim(input [, chars]) 修剪输入两边的字符(默认为空白)。
unescape(input) 将HTML编码的实体替换为 <, >, &, ', "/
whitelist(input, chars) 删除未出现在白名单中的字符。这些字符是在RegExp中使用的,因此您需要转义一些字符,例如 whitelist(input, '\\[\\]')

单元测试用例详情

约束与限制

在下述版本验证通过:

DevEco Studio: NEXT Beta1-5.0.3.806, SDK: API12 Release(5.0.0.66)

DevEco Studio: 4.0 (4.0.3.512), SDK: API10 (4.0.10.9)

DevEco Studio: 3.1 Beta2(3.1.0.400), SDK: API9 Release(3.2.11.9)

DevEco Studio: 4.0Canary1(4.0.0.112), SDK: API10(4.0.7.2)

贡献代码

使用过程中发现任何问题都可以提交Issue 给我们,当然,我们也非常欢迎你给我们提交PR

开源协议

本项目遵循 MIT License