Skip to content

校验工具 API

默认导出为 ValidationUtils

使用指引(做什么、何时用)

  • 表单校验:提交前用 isValidEmail/URL/PhoneNumber/PostalCode/IDCard 做基础合法性检查
  • 接口前置检查:在调用后端接口前先校验输入,避免浪费网络与后端资源
  • 数据清洗:后端返回的字符串再校验/过滤,提升稳健性

注意

  • 所有校验为“基础正则”或内置检查,无法覆盖所有边界;复杂校验应结合业务规则
  • 电话/身份证等规则会因地区/政策更新而变化,请结合后端校验为准

导入

ts
import { ValidationUtils } from 'nex-lib';

type(value: any): string

ts
ValidationUtils.type('a');                 // 'string'
ValidationUtils.type(1);                   // 'number'
ValidationUtils.type(true);                // 'boolean'
ValidationUtils.type({});                  // 'object'
ValidationUtils.type([]);                  // 'array'
ValidationUtils.type(new Date());          // 'date'
ValidationUtils.type(/re/);                // 'regexp'
ValidationUtils.type(new Error('x'));      // 'error'
ValidationUtils.type(null);                // 'null'
ValidationUtils.type(undefined);           // 'undefined'
ValidationUtils.type(new Map());           // 'map'
ValidationUtils.type(new Set());           // 'set'
ValidationUtils.type(Promise.resolve());   // 'promise'
ValidationUtils.type(Symbol('s'));         // 'symbol'
ValidationUtils.type(BigInt(1));           // 'bigint'

isValidEmail(email: string): boolean

ts
ValidationUtils.isValidEmail('test@example.com'); // true

isValidURL(url: string): boolean

ts
ValidationUtils.isValidURL('https://example.com'); // true

isValidPhoneNumber(phone: string): boolean

ts
ValidationUtils.isValidPhoneNumber('1234567890'); // true(10-12位数字)

isValidDate(date: string): boolean

ts
ValidationUtils.isValidDate('2024-02-29'); // true(闰年)

isValidPostalCode(postalCode: string): boolean

ts
ValidationUtils.isValidPostalCode('100000'); // true(中国大陆,6位数字)

isValidIDCard(idCard: string): boolean

ts
ValidationUtils.isValidIDCard('11010119900307123X'); // 示例,正则匹配

Released under the ISC License.