字符串验证(Validators)和清理转换(Sanitizers)的库,引用自validator.js,并进行了扩展
[doc] Validators
Here is a list of the validators currently available.
Validator | Description |
---|---|
contains(str, seed) | check if the string contains the seed. |
equals(str, comparison) | check if the string matches the comparison. |
isAfter(str [, date]) | check if the string is a date that's after the specified date (defaults to now). |
isAlpha(str [, locale]) | check if the string contains only letters (a-zA-Z). Locale is one of ['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', 'fr-FR', 'hu-HU', 'it-IT', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sk-SK', * 'sr-RS', 'sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA'] ) and defaults to en-US . |
isAlphanumeric(str [, locale]) | check if the string contains only letters and numbers. Locale is one of * ['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', 'fr-FR', 'hu-HU', 'it-IT', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', * 'sk-SK', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA'] ) and defaults to en-US . |
isAscii(str) | check if the string contains ASCII chars only. |
isBase64(str) | check if a string is base64 encoded. |
isBefore(str [, date]) | check if the string is a date that's before the specified date. |
isBoolean(str) | check if a string is a boolean. |
isByteLength(str [, options]) | check if the string's length (in UTF-8 bytes) falls in a * range.options is an object which defaults to {min:0, max: undefined} . |
isCreditCard(str) | check if the string is a credit card. |
isCurrency(str [, options]) | check if the string is a valid currency amount.options is an object * which defaults to {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} .Note: The array * digits_after_decimal is filled with the exact number of digits allowd not a range, for example a range 1 to 3 will be given * as [1, 2, 3]. |
isDataURI(str) | check if the string is a [data uri format] * (https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs). |
isDecimal(str [, options]) | check if the string represents a decimal number, such as 0.1, .3, 1.1, 1.00003, * 4.0, etc.options is an object which defaults to {force_decimal: false, decimal_digits: '1,', locale: 'en-US'} * locale determine the decimal separator and is one of ['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', 'hu-HU', 'it-IT', 'nb-NO', * 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA'] .Note: * decimal_digits is given as a range like '1,3', a specific value like '3' or min like '1,'. |
isDivisibleBy(str, number) | check if the string is a number that's divisible by another. |
isEmail(str [, options]) | check if the string is an email.options is an object which defaults to * { allow_display_name: false, require_display_name: false, allow_utf8_local_part: true, require_tld: true } . If * allow_display_name is set to true, the validator will also match Display Name <email-address> . If require_display_name * is set to true, the validator will reject strings without the format Display Name <email-address> . If * allow_utf8_local_part is set to false, the validator will not allow any non-English UTF8 character in email address' local * part. If require_tld is set to false, e-mail addresses without having TLD in their domain will also be matched. |
isEmpty(str) | check if the string has a length of zero. |
isFQDN(str [, options]) | check if the string is a fully qualified domain name (e.g. domain.com) * .options is an object which defaults to { require_tld: true, allow_underscores: false, allow_trailing_dot: false } * . |
isFloat(str [, options]) | check if the string is a float.options is an object which can contain * the keys min , max , gt , and/or lt to validate the float is within boundaries (e.g. { min: 7.22, max: 9.55 } ) it also * has locale as an option.min and max are equivalent to 'greater or equal' and 'less or equal', respectively * while gt and lt are their strict counterparts.locale determine the decimal separator and is one of ['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', 'hu-HU', 'it-IT', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sr-RS', * 'sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA'] . |
isFullWidth(str) | check if the string contains any full-width chars. |
isHalfWidth(str) | check if the string contains any half-width chars. |
isHash(str, algorithm) | check if the string is a hash of type algorithm. Algorithm is one of * ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', 'tiger160', 'tiger192', 'crc32', * 'crc32b'] |
isHexColor(str) | check if the string is a hexadecimal color. |
isHexadecimal(str) | check if the string is a hexadecimal number. |
isIP(str [, version]) | check if the string is an IP (version 4 or 6). |
isISBN(str [, version]) | check if the string is an ISBN (version 10 or 13). |
isISSN(str [, options]) | check if the string is an [ISSN] * (https://en.wikipedia.org/wiki/International_Standard_Serial_Number).options is an object which defaults to { * case_sensitive: false, require_hyphen: false } . If case_sensitive is true, ISSNs with a lowercase 'x' as the check digit * are rejected. |
isISIN(str) | check if the string is an [ISIN][ISIN] (stock/security identifier). |
isISO8601(str) | check if the string is a valid ISO 8601 * date. |
isRFC3339(str) | check if the string is a valid RFC 3339 date. |
isISO31661Alpha2(str) | check if the string is a valid [ISO 3166-1 alpha-2] * (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. |
isISO31661Alpha3(str) | check if the string is a valid [ISO 3166-1 alpha-3] * (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. |
isISRC(str) | check if the string is a [ISRC] * (https://en.wikipedia.org/wiki/International_Standard_Recording_Code). |
isIn(str, values) | check if the string is in a array of allowed values. |
isInt(str [, options]) | check if the string is an integer.options is an object which can contain * the keys min and/or max to check the integer is within boundaries (e.g. { min: 10, max: 99 } ). options can also * contain the key allow_leading_zeroes , which when set to false will disallow integer values with leading zeroes (e.g. { * allow_leading_zeroes: false } ). Finally, options can contain the keys gt and/or lt which will enforce integers being * greater than or less than, respectively, the value provided (e.g. {gt: 1, lt: 4} for a number between 1 and 4). |
isJSON(str) | check if the string is valid JSON (note: uses JSON.parse). |
isLatLong(str) | check if the string is a valid latitude-longitude coordinate in the format lat, * long or lat, long . |
isLength(str [, options]) | check if the string's length falls in a range.options is an object * which defaults to {min:0, max: undefined} . Note: this function takes into account surrogate pairs. |
isLowercase(str) | check if the string is lowercase. |
isMACAddress(str) | check if the string is a MAC address. |
isMD5(str) | check if the string is a MD5 hash. |
isMimeType(str) | check if the string matches to a valid [MIME type] * (https://en.wikipedia.org/wiki/Media_type) format |
isMobilePhone(str, locale [, options]) | check if the string is a mobile phone number, (locale is either * an array of locales (e.g ['sk-SK', 'sr-RS'] ) OR one of ['ar-AE', 'ar-DZ', 'ar-EG', 'ar-JO', 'ar-SA', 'ar-SY', 'ar-TN', * 'be-BY', 'bg-BG', 'cs-CZ', 'de-DE', 'da-DK', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-HK', 'en-IN', 'en-KE', 'en-NG', 'en-NZ', * 'en-RW', 'en-SG', 'en-UG', 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'en-PK', 'es-ES', 'et-EE', 'fa-IR', 'fi-FI', 'fr-FR', 'he-IL', * 'hu-HU', 'it-IT', 'ja-JP', 'kk-KZ', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'nn-NO', 'pl-PL', 'pt-PT', 'pt-BR', 'ro-RO', 'ru-RU', * 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', 'zh-HK', 'zh-TW'] OR 'any'. If 'any' is used, * function will check if any of the locales match).options is an optional object that can be supplied with the * following keys: strictMode , if this is set to true , the mobile phone number must be supplied with the country code and * therefore must start with + . |
isMongoId(str) | check if the string is a valid hex-encoded representation of a [MongoDB ObjectId] * [mongoid]. |
isMultibyte(str) | check if the string contains one or more multibyte chars. |
isNumeric(str) | check if the string contains only numbers. |
isPort(str) | check if the string is a valid port number. |
isPostalCode(str, locale) | check if the string is a postal code, (locale is one of [ 'AT', 'AU', 'BE', * 'BG', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IL', 'IN', 'IS', 'IT', 'JP', 'KE', * 'LI', 'LT', 'LU', 'LV', 'MX', 'NL', 'NO', 'PL', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'US', 'ZA', 'ZM' ] OR 'any'. * If 'any' is used, function will check if any of the locals match. locale list is validator.isPostalCodeLocales .). |
isSurrogatePair(str) | check if the string contains any surrogate pairs chars. |
isURL(str [, options]) | check if the string is an URL.options is an object which defaults to { * protocols: ['http','https','ftp'], require_tld: true, require_protocol: false, require_host: true, require_valid_protocol: * true, allow_underscores: false, host_whitelist: false, host_blacklist: false, allow_trailing_dot: false, * allow_protocol_relative_urls: false } . |
isUUID(str [, version]) | check if the string is a UUID (version 3, 4 or 5). |
isUppercase(str) | check if the string is uppercase. |
isVariableWidth(str) | check if the string contains a mixture of full and half-width chars. |
isWhitelisted(str, chars) | checks characters if they appear in the whitelist. |
matches(str, pattern [, modifiers]) | check if string matches the pattern. Either matches('foo', /foo/i) or * matches('foo', 'foo', 'i') . |
[doc] Sanitizers
Here is a list of the sanitizers currently available.
Sanitizer | Description |
---|---|
normalizeEmail(email [, options]) | canonicalizes an email address. (This doesn't validate that the input is an email, if * you want to validate the email use isEmail beforehand)options is an object with the following keys and default * values:
|
stripLow(input [, keep_new_lines]) | remove characters with a numerical value < 32 and 127, mostly control characters. If * keep_new_lines is true , newline characters are preserved (\n and \r , hex 0xA and 0xD ). Unicode-safe in JavaScript. |
toBoolean(input [, strict]) | convert the input string to a boolean. Everything except for '0' , 'false' and * '' returns true . In strict mode only '1' and 'true' return true . |
toDate(input) | convert the input string to a date, or null if the input is not a date. |
toFloat(input) | convert the input string to a float, or NaN if the input is not a float. |
toInt(input [, radix]) | convert the input string to an integer, or NaN if the input is not an integer. |
-
-
blacklist(input, chars)
-
删除出现在黑名单中的字符。字符在RegExp中使用,因此需要转义一些字符,比如'['转义符'\['
Parameters:
Name Type Description input
string 字符串
chars
string | array 黑名单字符
Returns:
返回处理后的字符串的复制
- Type:
- string
Example
var input ="abc[def]g" $api.string.blacklist(input, '\\[\\]') $api.string.blacklist(input, ['\\[','\\]']) // 输出:"abcdef]g"
-
break(txt [, lineLength] [, lineBreak])
-
文本自动换行
Parameters:
Name Type Argument Default Description txt
string 文本
lineLength
Number <可选>
10 换行长度,0:表示不处理
lineBreak
string <可选>
"\r\n" 换行符
Returns:
换行处理过的字符串的复制
- Type:
- string
Example
var txt = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" $api.string.break(txt ,5 ,"<br/>") // 输出:"aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aaaaa<br/>aa" $api.string.break(txt ,5 ) // 输出 "aaaaa aaaaa aaaaa aaaaa aaaaa aaaaa aa"
-
byteLength(str)
-
计算字符串的字节长度(双字节按照2个长度计算)
Parameters:
Name Type Description str
string 字符串
Returns:
字符串字节长度
- Type:
- Number
Example
var str ="关于A" $api.string.byteLength(str) // 输出: 5
-
escape(input)
-
转义html标签
Parameters:
Name Type Description input
string 字符串
Returns:
返回处理后的字符串的复制
- Type:
- string
Example
var input ="<br/>" $api.string.escape(input) // 输出:"<br/>"
-
html2Text(html)
-
html转换成文本
Parameters:
Name Type Description html
string html字符串
Returns:
去html格式的纯文本的复制
- Type:
- string
Example
var html = '<a href="#/about" class="" data-v-91154714="">关于</a>' $api.string.html2Text(html) // 输出: "关于"
-
ltrim(input [, chars])
-
去前导空格
Parameters:
Name Type Argument Description input
string 字符串
chars
string | array <可选>
需要去掉的字符,默认是空白字符
Returns:
返回处理后的字符串的复制
- Type:
- string
Example
var input =" abc[def]g " $api.string.ltrim(input) // 输出:"abc[def]g " input ="[def]g" $api.string.ltrim(input,['[','d']) // 输出:"ef]"
-
rtrim(input [, chars])
-
去后导空格
Parameters:
Name Type Argument Description input
string 字符串
chars
string <可选>
需要去掉的字符,默认是空白字符
Returns:
返回处理后的字符串的复制
- Type:
- string
Example
var input =" abc[def]g " $api.string.rtrim(input) // 输出:" abc[def]g" input ="[def]g" $api.string.rtrim(input,'\\g\\]') // 输出:"def]"
-
trim(input [, chars])
-
去头尾空格
Parameters:
Name Type Argument Description input
string 字符串
chars
string | array <可选>
需要去掉的字符,默认是空白字符
Returns:
返回处理后的字符串的复制
- Type:
- string
Example
var input =" abc[def]g " $api.string.trim(input) // 输出:"abc[def]g" input ="[def]g" $api.string.trim(input,['[','g']) // 输出:"def]"
-
unescape(input)
-
反转义html标签
Parameters:
Name Type Description input
string 字符串
Returns:
返回处理后的字符串的复制
- Type:
- string
Example
var input ="<br/>" $api.string.unescape(input) // 输出:"<br/>"
-
unique()
-
随机唯一码
Returns:
唯一码
- Type:
- string
Example
$api.string.unique()
-
whitelist(input, chars)
-
删除未出现在白名单中的字符。字符在RegExp中使用,因此需要转义一些字符,比如'['转义符'\['
Parameters:
Name Type Description input
string 字符串
chars
string | array 黑名单字符
Returns:
返回处理后的字符串的复制
- Type:
- string
Example
var input ="abc[def]g" $api.string.whitelist(input, '\\[') $api.string.whitelist(input, ['\\[','\\]']) // 输出:"["