Validator是一个字符串验证和清理的库。

https://github.com/validatorjs/validator.js

仅限字符串

这个库只验证和清理字符串。

如果你不确定你的输入是否是字符串,请使用 input + '' 进行强制转换。传递非字符串将导致错误。

安装与使用

服务器端使用

安装 validator 包:

1
2
3
npm install validator
yarn add validator
pnpm install validator

不使用 ES6

1
2
3
var validator = require('validator');

validator.isEmail('foo@bar.com'); // => true

使用 ES6

1
import validator from 'validator';

或者,仅导入库的一部分:

1
import isEmail from 'validator/lib/isEmail';

Tree-shakeable ES 导入

1
import isEmail from 'validator/es/lib/isEmail';

客户端使用

该库可以作为独立脚本加载,或通过 [AMD][amd] 兼容的加载器加载:

1
2
3
4
<script type="text/javascript" src="validator.min.js"></script>
<script type="text/javascript">
validator.isEmail('foo@bar.com'); // => true
</script>

该库也可以通过 [bower][bower] 安装:

1
$ bower install validator-js

CDN

1
<script src="https://unpkg.com/validator@latest/validator.min.js"></script>

验证器

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

验证器描述
contains(str, seed [, options])检查字符串是否包含指定的种子字符串。options 是一个对象,默认值为 { ignoreCase: false, minOccurrences: 1 }。选项: ignoreCase:比较时忽略大小写,默认值为 false。minOccurrences:种子字符串在目标字符串中出现的最小次数,默认值为 1。
equals(str, comparison)检查字符串是否与比较值匹配。
isAbaRouting(str)检查字符串是否为美国银行账户或支票的 ABA 路由号码。
isAfter(str [, options])检查字符串是否表示一个晚于指定日期的日期。options 是一个对象,默认值为 { comparisonDate: Date().toString() }选项: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', 'eo', 'es-ES', 'fa-IR', 'fi-FI', 'fr-CA', 'fr-FR', 'he', 'hi-IN', 'hu-HU', 'it-IT', 'kk-KZ', '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。语言环境列表为 validator.isAlphaLocalesoptions 是一个可选对象,可以包含以下键:ignore,它可以是一个字符串或正则表达式,用于指定要忽略的字符,例如 " -" 表示忽略空格和连字符。
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', 'eo', 'es-ES', 'fa-IR', 'fi-FI', 'fr-CA', 'fr-FR', 'he', 'hi-IN', 'hu-HU', 'it-IT', 'kk-KZ', '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。语言环境列表为 validator.isAlphanumericLocalesoptions 是一个可选对象,可以包含以下键:ignore,它可以是一个字符串或正则表达式,用于指定要忽略的字符,例如 " -" 表示忽略空格和连字符。
isAscii(str)检查字符串是否仅包含 ASCII 字符。
isBase32(str [, options])检查字符串是否为 Base32 编码。options 是可选的,默认值为 { crockford: false }。 当 crockford 为 true 时,将使用 [Crockford 的 Base32 变体][Crockford Base32] 来测试给定的 Base32 编码字符串。
isBase58(str)检查字符串是否为 Base58 编码。
isBase64(str [, options])检查字符串是否为 Base64 编码。options 是可选的,默认值为 { urlSafe: false, padding: true }。 当 urlSafe 为 true 时,padding 的默认值为 false,并会测试给定的 Base64 编码字符串是否为 [URL 安全][Base64 URL Safe] 格式。
isBefore(str [, options])检查字符串是否表示一个早于指定日期的日期。options 是一个对象,默认值为 { comparisonDate: Date().toString() }选项:comparisonDate:用于比较的日期,默认值为 Date().toString()(即当前日期)。
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)检查字符串是否为 [数据 URI 格式][Data URI Format]。
isDate(str [, options])检查字符串是否为有效的日期,例如 ['2002-07-15', new Date()]options 是一个对象,可以包含 formatstrictMode 和/或 delimiters 这些键。format 是一个字符串,默认值为 YYYY/MM/DDstrictMode 是一个布尔值,默认值为 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', 'eo', '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’ 这样的特定值或像 ‘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, allow_underscores: 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,验证器将不允许电子邮件地址本地部分包含任何非英文字符的 UTF-8 字符。如果 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 是一个对象,可以包含 minmaxgt 和/或 lt 这些键,以验证浮点数是否在指定范围内(例如 { min: 7.22, max: 9.55 }),它还可以包含 locale 选项。minmax 分别相当于“大于或等于”和“小于或等于”,而 gtlt 是它们的严格版本。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', 'eo', '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'] 中的一个。语言环境列表为 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 }require_tld - 如果设置为 false,验证器将不检查域名是否包含顶级域名(TLD)。allow_underscores - 如果设置为 true,验证器将允许域名中包含下划线。allow_trailing_dot - 如果设置为 true,验证器将允许域名以 . 字符结尾。allow_numeric_tld - 如果设置为 true,验证器将允许域名的顶级域名完全由数字组成。allow_wildcard - 如果设置为 true,验证器将允许以 *. 开头的域名(例如 *.example.com*.shop.example.com)。ignore_max_length - 如果设置为 true,验证器将不检查域名的标准最大长度。
isFreightContainerID(str)isISO6346 的别名,检查字符串是否为有效的 ISO 6346 集装箱标识。
isFullWidth(str)检查字符串是否包含任何全角字符。
isHalfWidth(str)检查字符串是否包含任何半角字符。
isHash(str, algorithm)检查字符串是否为指定算法的哈希值。算法可以是 ['crc32', 'crc32b', 'md4', 'md5', 'ripemd128', 'ripemd160', 'sha1', 'sha256', 'sha384', 'sha512', 'tiger128', 'tiger160', 'tiger192'] 中的一个。
isHexadecimal(str)检查字符串是否为十六进制数。
isHexColor(str)检查字符串是否为十六进制颜色值。
isHSL(str)检查字符串是否为基于 [CSS 颜色规范第 4 级][CSS Colors Level 4 Specification] 的 HSL(色相、饱和度、亮度,可选透明度)颜色值。支持逗号分隔的格式。除了一些特殊情况(例如 hsl(200grad+.1%62%/1))外,还支持空格分隔的格式。
isIBAN(str, [, options])检查字符串是否为 IBAN(国际银行账号)。options 是一个对象,可以接受两个属性:whitelist:用于限制你希望接收数据的 IBAN 代码;blacklist:用于从当前列表中排除某些国家的代码。对于这两个属性,你可以使用包含以下值的数组 ['AD','AE','AL','AT','AZ','BA','BE','BG','BH','BR','BY','CH','CR','CY','CZ','DE','DK','DO','EE','EG','ES','FI','FO','FR','GB','GE','GI','GL','GR','GT','HR','HU','IE','IL','IQ','IR','IS','IT','JO','KW','KZ','LB','LC','LI','LT','LU','LV','MC','MD','ME','MK','MR','MT','MU','MZ','NL','NO','PK','PL','PS','PT','QA','RO','RS','SA','SC','SE','SI','SK','SM','SV','TL','TN','TR','UA','VA','VG','XK']
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', 'PK'] 中的一个,或者为 'any'。如果使用 'any',函数将检查是否与任何一个语言环境匹配。默认值为 'any'
isIMEI(str [, options]))检查字符串是否为有效的 [IMEI 号码][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 键,这将分别强制整数大于或小于提供的值(例如 {gt: 1, lt: 4} 表示一个介于 1 和 4 之间的数字)。
isIP(str [, options])检查字符串是否为 IP 地址(版本 4 或 6)。options 是一个对象,默认值为 { version: '' }选项:version:定义要比较的 IP 版本。可接受的值为 46'4''6'
isIPRange(str [, version])检查字符串是否为 IP 范围(版本 4 或 6)。
isISBN(str [, options])检查字符串是否为 [ISBN][ISBN]。options 是一个对象,没有默认值。选项:version:要比较的 ISBN 版本。可接受的值为 ‘10’ 和 ‘13’。如果未提供,则将同时测试这两个版本。
isISIN(str)检查字符串是否为 [ISIN][ISIN](股票/证券标识符)。
isISO6346(str)检查字符串是否为有效的 ISO 6346 集装箱标识。
isISO6391(str)检查字符串是否为有效的 [ISO 639-1][ISO 639-1] 语言代码。
isISO8601(str [, options])检查字符串是否为有效的 [ISO 8601][ISO 8601] 日期。 options 是一个对象,默认值为 { strict: false, strictSeparator: false }。如果 strict 为 true,像 2009-02-29 这样的无效日期字符串将被判定为无效。如果 strictSeparator 为 true,日期和时间之间用除 T 以外的字符分隔的日期字符串将被判定为无效。
isISO15924(str)检查字符串是否为有效的 [ISO 15924][ISO 15924] 官方分配的文字代码。
isISO31661Alpha2(str)检查字符串是否为有效的 [ISO 3166-1 alpha-2][ISO 3166-1 alpha-2] 官方分配的国家代码。
isISO31661Alpha3(str)检查字符串是否为有效的 [ISO 3166-1 alpha-3][ISO 3166-1 alpha-3] 官方分配的国家代码。
isISO31661Numeric(str)检查字符串是否为有效的 [ISO 3166-1 数字][ISO 3166-1 numeric] 官方分配的国家代码。
isISO4217(str)检查字符串是否为有效的 [ISO 4217][ISO 4217] 官方分配的货币代码。
isISRC(str)检查字符串是否为 [ISRC][ISRC]。
isISSN(str [, options])检查字符串是否为 [ISSN][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''null' 这些基本类型将被接受为有效的 JSON 值。
isJWT(str)检查字符串是否为有效的 JWT 令牌。
isLatLong(str [, options])检查字符串是否为有效的经纬度坐标,格式为 lat,longlat, longoptions 是一个对象,默认值为 { checkDMS: false }。将 checkDMS 设置为 true 可验证度分秒(DMS)格式的经纬度坐标。
isLength(str [, options])检查字符串的长度是否在指定范围内,并且如果提供了 discreteLengths 数组,则检查长度是否等于该数组中的任何整数。options 是一个对象,默认值为 { min: 0, max: undefined, discreteLengths: undefined }。注意:此函数会考虑代理对。
isLicensePlate(str, locale)检查字符串是否符合某个国家的车牌格式。locale 可以是 ['cs-CZ', 'de-DE', 'de-LI', 'en-IN', 'en-SG', 'en-PK', '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’。选项还允许使用 eui 属性来指定是否需要根据 EUI-48 或 EUI-64 进行验证。eui 的可接受值为:48、64。
isMagnetURI(str)检查字符串是否为 [磁力链接 URI 格式][Magnet URI Format]。
isMailtoURI(str, [, options])检查字符串是否为 [Mailto URI 格式][Mailto URI Format]。options 是一个用于验证 URI 内电子邮件地址的对象(详细信息请查看 isEmail 的选项)。
isMD5(str)检查字符串是否为 MD5 哈希值。请注意,你也可以使用 isHash(str, 'md5') 函数。请记住,与其他算法(如 SHA)相比,MD5 存在一些碰撞弱点。
isMimeType(str)检查字符串是否匹配有效的 [MIME 类型][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-SD', '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-MW', '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-GT', '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-CF', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-PF', 'fr-RE', 'fr-WF', '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', 'mk-MK', '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', 'so-SO', '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' 或一个假值,函数将检查是否与任何一个语言环境匹配。options 是一个可选对象,可以包含以下键:strictMode,如果设置为 true,手机号码必须带有国家代码,因此必须以 + 开头。语言环境列表为 validator.isMobilePhoneLocales
isMongoId(str)检查字符串是否为有效的 [MongoDB 对象 ID][mongoid] 的十六进制编码表示。
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', 'eo', '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', 'ZA'] 中的一个。语言环境列表为 validator.passportNumberLocales
isPort(str)检查字符串是否为有效的端口号。
isPostalCode(str, locale)检查字符串是否为邮政编码。locale 可以是 ['AD', 'AT', 'AU', 'AZ', 'BA', 'BE', 'BG', 'BR', 'BY', 'CA', 'CH', 'CN', 'CO', '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', 'PK', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SG', 'SI', 'SK', 'TH', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM'] 中的一个,或者为 'any'。如果使用 'any',函数将检查是否与任何一个语言环境匹配。语言环境列表为 validator.isPostalCodeLocales
isRFC3339(str)检查字符串是否为有效的 [RFC 3339][RFC 3339] 日期。
isRgbColor(str [,options])检查字符串是否为 rgb 或 rgba 颜色。options 是一个具有以下属性的对象:includePercentValues 默认值为 true。如果你不想允许使用百分比设置 rgbrgba 值,例如 rgb(5%,5%,5%)rgba(90%,90%,90%,.3),则将其设置为 false。allowSpaces 默认值为 true,这会禁止空格。如果设置为 false,则允许颜色值之间有空格,例如 rgb(255, 255, 255) 甚至 rgba(255, 128,0,0.7)
isSemVer(str)检查字符串是否符合语义化版本规范(SemVer)。
isSurrogatePair(str)检查字符串是否包含任何代理对字符。
isUppercase(str)检查字符串是否为大写。
isSlug(str)检查字符串是否为 slug 类型。
isStrongPassword(str [, options])检查字符串是否可以被视为强密码。允许自定义要求或评分规则。如果 returnScore 为 true,则函数将返回密码的整数评分,而不是布尔值。默认选项: { 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'hourFormat 可以包含 'hour12''hour24' 这些值,'hour24' 将验证 24 小时制的时间,'hour12' 将验证 12 小时制的时间。 mode 可以包含 'default''withSeconds''withOptionalSeconds' 这些值,'default' 将验证 HH:MM 格式,'withSeconds' 将验证 HH:MM:SS 格式,'withOptionalSeconds' 将验证 'HH:MM''HH:MM:SS' 格式。
isTaxID(str, locale)检查字符串是否为有效的税务识别号。默认语言环境为 en-US。有关确切 TIN 支持的更多信息,请参阅 src/lib/isTaxID.js。支持的语言环境:[ 'bg-BG', 'cs-CZ', 'de-AT', 'de-DE', 'dk-DK', 'el-CY', 'el-GR', 'en-CA', 'en-GB', 'en-IE', 'en-US', 'es-AR', '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', 'uk-UA']
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 }protocols - 可以使用此选项修改有效协议。require_tld - 如果设置为 false,isURL 将不检查 URL 的主机是否包含顶级域名。require_protocol - 如果设置为 true,isURL 将在 URL 中没有协议时返回 false。require_host - 如果设置为 false,isURL 将不检查 URL 中是否存在主机。require_port - 如果设置为 true,isURL 将检查 URL 中是否存在端口。require_valid_protocol - isURL 将检查 URL 的协议是否存在于 protocols 选项中。allow_underscores - 如果设置为 true,验证器将允许 URL 中包含下划线。host_whitelist - 如果设置为一个字符串数组或正则表达式数组,并且域名与其中定义的任何字符串都不匹配,则验证失败。host_blacklist - 如果设置为一个字符串数组或正则表达式数组,并且域名与其中定义的任何字符串匹配,则验证失败。allow_trailing_dot - 如果设置为 true,验证器将允许域名以 . 字符结尾。allow_protocol_relative_urls - 如果设置为 true,将允许协议相对 URL。allow_fragments - 如果设置为 false,isURL 将在 URL 中存在片段时返回 false。allow_query_components - 如果设置为 false,isURL 将在 URL 中存在查询组件时返回 false。disallow_auth - 如果设置为 true,验证器将在 URL 包含身份验证组件(例如 http://username:password@example.com)时失败。validate_length - 如果设置为 false,isURL 将跳过字符串长度验证。如果设置为 falsemax_allowed_length 将被忽略。max_allowed_length - 如果设置,isURL 将不允许超过指定长度的 URL(默认值为 2084,即 IE 的最大 URL 长度)。
isULID(str)检查字符串是否为 ULID
isUUID(str [, version])检查字符串是否为 RFC9562 UUID。version 可以是 '1' - '8''nil''max''all''loose' 中的一个。'loose' 选项将检查字符串是否为类似 UUID 的十六进制值字符串,忽略 RFC9565。
isVariableWidth(str)检查字符串是否包含全角和半角字符的混合。
isVAT(str, countryCode)检查字符串是否为 [有效的 VAT 号码][VAT Number],前提是针对给定的符合 [ISO 3166-1 alpha-2][ISO 3166-1 alpha-2] 的国家代码有可用的验证方法。 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)移除黑名单中出现的字符。这些字符会用于正则表达式,因此你需要对某些字符进行转义,例如 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 - 已知雅虎邮箱地址不区分大小写,因此即使 all_lowercase 设置为 false,此开关也允许将其转换为小写。请注意,当 all_lowercase 为 true 时,无论此设置的值如何,雅虎邮箱地址都会转换为小写。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 安全的。
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)移除不在白名单中出现的字符。这些字符会用于正则表达式,因此你需要对某些字符进行转义,例如 whitelist(input, '\\[\\]')