0.0.3 • Published 10 months ago

@stroll/verify v0.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

validators

验证

安装

npm i -S @stroll/verify

引入

import verify from '@stroll/verify'
// OR
import {
  isUtf8, /** 是否utf8 */
  parmType, /** 判断字段类型 */
  ...
} from '@stroll/verify'

使用

/**
 * 是否utf8
 * @param s string
 * @returns 
 */
isUtf8(s: string): Promise<boolean>

/**
 * 判断字段类型
 * @param val 需要判断的参数
 * @param type 可选需要判断的类型
 * @returns Promise - 类型字符串 或 true/false/error 信息
 */
parmType (
  val: any,
  type?: 'Object' | 'Array' | 'String' | 'Null' | 'Undefined' | 'Number' | 'Function' | 'Date' | 'Boolean' | 'RegExp' | 'Symbol' | 'Set' | 'Map'
): Promise<string | boolean>

/**
 * 判断是否UUID 字符串
 * @param val 需要判断的参数
 * @returns Promise<{status: boolean, msg: string}>
 */
isUUID(val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否全部数字
 * @param val 需要判断的参数
 * @returns Promise<{status: boolean, msg: string}>
 */
isNumeric (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否全部字母和数字
 * @param val 需要判断的参数
 * @returns Promise<{status: boolean, msg: string}>
 */
isAlphanumeric (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否全部字母
 * @param val 需要判断的参数
 * @returns Promise<{status: boolean, msg: string}>
 */
isAlpha (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否全部小写字母
 * @param val 需要判断的参数
 * @returns Promise<{status: boolean, msg: string}>
 */
isAlphaTiny (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否全部大写字母
 * @param val 需要判断的参数
 * @returns Promise<{status: boolean, msg: string}>
 */
isAlphaBig (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是小驼峰
 * - 除首字母外最少一个大写字母
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isSmallHump (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是大驼峰
 * - 首字母大写以外最少再有一个大写字母
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isBigHump (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是严格模式驼峰
 * - 首字母大写以外最少再有一个大写字母并且不能连续大写
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isHump (
  val: string,
): Promise<{status: boolean, msg: string}>

/**
 * 判断是否是时间
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isTime (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是日期
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isDate (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是日期时间
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isDateTime (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是1代或2代身份证
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isIdCard (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是1代身份证
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isIdCard1 (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是2代身份证
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isIdCard2 (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是url
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isUrl (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是V4IP
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isIpV4 (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是V6IP
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isIpV6 (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是url或IP
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isUrlOrIp (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是正整数
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isInt (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是浮点数
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isFloat (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是邮箱
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isEmail (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是手机
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isPhone (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是版本号
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isVersion (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断是否是字母开头, 字母、数字、下划线 组成的账号
 * @param val 字符串
 * @returns Promise<{status: boolean, msg: string}>
 */
isAccount (val: string): Promise<{
  status: boolean,
  msg: string
}>

/**
 * 判断字段长度
 * @param val 需要判断的字符串
 * @param length 最大长度 默认 255
 * @param originate 最小长度 默认 0
 * @returns Promise - 类型字符串 或 true/false/error 信息
 */
export async function stringLength (
  val: string,
  length?: number|{length?: number,originate?: number},
  originate?: number
): Promise<{status: boolean, msg: string}>

/**
 * 判断数字长度
 * @param val 数字串
 * @param length 最大长度 默认 255
 * @param originate 最小长度 默认 0
 * @returns Promise<{status: boolean, msg: string}>
 */
export async function numberLength (
  val: string,
  length?: number|{length?: number,originate?: number},
  originate?: number
): Promise<{status: boolean, msg: string}>

/**
 * 判断是否是时间戳
 * @param val 字符串
 * @param leng 可选 长度参数  默认125
 * @returns Promise<{status: boolean, msg: string}>
 */
isTimestamp(timestamp: string): Promise<{
  status: boolean,
  msg: string
}>
/**
 * 字段验证类型
 * @param validate.is 匹配这个 RegExp
 * @param validate.not 与这个 RegExp 不匹配
 * @param validate.isEmail 检查 email 格式 (foo@bar.com)
 * @param validate.isUrl 检查 url 格式 (http://foo.com)
 * @param validate.isIP 检查 IPv4 (129.89.23.1) 或 IPv6 格式
 * @param validate.isIPv4 检查 IPv4 格式 (129.89.23.1)
 * @param validate.isIPv6 检查 IPv6 格式
 * @param validate.isAlpha 只允许字母
 * @param validate.isAlphanumeric 将仅允许使用字母数字,因此 '_abc' 将失败
 * @param validate.isNumeric 只允许数字
 * @param validate.isInt 检查有效的整数
 * @param validate.isFloat 检查有效的浮点数
 * @param validate.isDecimal 检查任何数字
 * @param validate.isLowercase 检查小写
 * @param validate.isUppercase 检查大写
 * @param validate.notNull 不允许为空
 * @param validate.isNull 只允许为空
 * @param validate.notEmpty 不允许空字符串
 * @param validate.equals 仅允许某个值
 * @param validate.contains 强制特定子字符串
 * @param validate.notIn 检查值不是这些之一
 * @param validate.isIn 检查值是其中之一
 * @param validate.notContains 不允许特定的子字符串
 * @param validate.len 仅允许长度在两个值之间
 * @param validate.isUUID 只允许 uuid
 * @param validate.isDate 只允许日期字符串
 * @param validate.isAfter 仅允许特定日期之后的日期字符串
 * @param validate.isBefore 仅允许特定日期之前的日期字符串
 * @param validate.max 仅允许值 <= 23
 * @param validate.min 仅允许值 >= 23
 * @param validate.isCreditCard 检查有效的信用卡号
 * @param validate.isEven 自定义验证
 * @param validate.isGreaterThanOtherField 未实现
 * @param validate.customValidator 未实现
 */
verifyField.isIP('')
verifyField.isInt('')
...
0.0.3

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago