Skip to content

引入

ts
import {
  isIdCard,
  isIndex,
  isRegExp,
  isDate,
  isFunction,
  isPlainObject,
  isPromise,
  isDef,
  isObj,
  isObject,
  isImageUrl,
  isVideoUrl,
  isNumber,
  isExternal,
  validURL,
  validLowerCase,
  validUpperCase,
  validAlphabets,
  validEmail,
  isString,
  isArray,
  isQQNumber,
  isEmail,
  isMobile,
  isTel,
  isWindows
} from 't-comm';

// 不支持 tree-shaking 的项目
import {
  isIdCard,
  isIndex,
  isRegExp,
  isDate,
  isFunction,
  isPlainObject,
  isPromise,
  isDef,
  isObj,
  isObject,
  isImageUrl,
  isVideoUrl,
  isNumber,
  isExternal,
  validURL,
  validLowerCase,
  validUpperCase,
  validAlphabets,
  validEmail,
  isString,
  isArray,
  isQQNumber,
  isEmail,
  isMobile,
  isTel,
  isWindows
} from 't-comm/lib/validate/index';

// 只支持 ESM 的项目
import {
  isIdCard,
  isIndex,
  isRegExp,
  isDate,
  isFunction,
  isPlainObject,
  isPromise,
  isDef,
  isObj,
  isObject,
  isImageUrl,
  isVideoUrl,
  isNumber,
  isExternal,
  validURL,
  validLowerCase,
  validUpperCase,
  validAlphabets,
  validEmail,
  isString,
  isArray,
  isQQNumber,
  isEmail,
  isMobile,
  isTel,
  isWindows
} from 't-comm/es/validate/index';

isIdCard(idCard)

描述:判断是否合法的身份证号 除了基本的格式校验外,还检查了第18位是否合法,方法如下:

  • 逆序排列,放到数组 list 中
  • x/X 代表数字10
  • 遍历 list,累加 item * ((2 ** index) % 11),item 为list的每一位,index为下标值
  • 将上一步的累加和余11,判断是否等于1

参数

参数名类型描述
idCardstring输入字符串

示例

typescript
isIdCard('123')
// false

isIdCard('34052419800101001X')
// true

isIndex(value, [length])

描述:Checks if value is a valid array-like index.

参数

参数名类型默认值描述
value\*The value to check.
[length]numberMAX_SAFE_INTEGERThe upper bounds of a valid index.

返回: boolean

Returns true if value is a valid index, else false.

示例

ts
isIndex(0); // true
isIndex(1); // true
isIndex(100); // true
isIndex('0'); // true
isIndex('999'); // true
isIndex(-1); // false
isIndex(1.5); // false
isIndex('abc'); // false
isIndex('01'); // false  // 前导 0
isIndex(5, 5); // false  // value 必须 < length
isIndex(4, 5); // true
isIndex(0, 0); // false  // length 为 0
isIndex(Symbol('test')); // false
isIndex(null); // false
isIndex(undefined); // false

isRegExp(value)

描述:判断数据是不是正则对象

参数

参数名类型描述
valueany输入数据

返回: boolean

是否是正则对象

示例

typescript
isRegExp(1)

// => false

isRegExp(/\d/)

// => true

isDate(value)

描述:判断数据是不是时间对象

参数

参数名类型描述
valueany输入数据

返回: boolean

是否是时间对象

示例

typescript
isDate(1)

// => false

isDate(new Date())

// => true

isFunction(value)

描述:判断数据是不是函数

参数

参数名类型描述
valueany输入数据

返回: boolean

是否是函数

示例

typescript
isFunction(1)

// => false

isFunction(()=>{})

// => true

isPlainObject(val)

描述:判断数据是否为普通对象 排除 null 和数组,只返回纯对象

参数

参数名描述
val输入数据

返回: 是否为普通对象

示例

ts
isPlainObject({}); // true
isPlainObject([]); // false
isPlainObject(null); // false

isPromise(val)

描述:判断数据是否为 Promise 对象 检查对象是否有 then 和 catch 方法

参数

参数名描述
val输入数据

返回: 是否为 Promise 对象

示例

ts
isPromise(Promise.resolve()); // true
isPromise({}); // false

isDef(value)

描述:判断值是否已定义(不为 undefined 和 null)

参数

参数名描述
value输入数据

返回: 是否已定义

示例

ts
isDef(0); // true
isDef(''); // true
isDef(null); // false
isDef(undefined); // false

isObj(x)

描述:判断是否为对象或函数

参数

参数名描述
x输入数据

返回: 是否为对象或函数

示例

ts
isObj({}); // true
isObj(() => {}); // true
isObj(null); // false

isObject(val)

描述:判断是否为对象类型

参数

参数名描述
val输入数据

返回: 是否为对象

示例

ts
isObject({}); // true
isObject([]); // true
isObject(null); // false

isImageUrl(url)

描述:判断 URL 是否为图片地址 根据文件扩展名判断(jpeg、jpg、gif、png、svg、webp、jfif、bmp、dpg)

参数

参数名描述
urlURL 地址

返回: 是否为图片 URL

示例

ts
isImageUrl('https://example.com/image.jpg'); // true
isImageUrl('https://example.com/video.mp4'); // false

isVideoUrl(url)

描述:判断 URL 是否为视频地址 根据文件扩展名判断(mp4、mpg、mpeg、dat、asf、avi、rm、rmvb、mov、wmv、flv、mkv)

参数

参数名描述
urlURL 地址

返回: 是否为视频 URL

示例

ts
isVideoUrl('https://example.com/video.mp4'); // true
isVideoUrl('https://example.com/image.jpg'); // false

isNumber(value)

描述:判断字符串是否为数字格式 支持整数和小数

参数

参数名描述
value输入值

返回: 是否为数字格式

示例

ts
isNumber('123'); // true
isNumber('123.45'); // true
isNumber('abc'); // false

isExternal(path)

描述:判断是否外部资源

参数

参数名类型
pathstring

示例

ts
isExternal('http://baidu.com'); // true
isExternal('mailto:a@b.com'); // true
isExternal('tel:10086'); // true
isExternal('ttt'); // false

validURL(url)

描述:判断是否URL

参数

参数名类型
urlstring

示例

ts
validURL('http://baidu.com'); // true
validURL('https://www.google.com'); // true
validURL('ftp://192.168.1.1'); // true
validURL('baidu.com'); // false
validURL('htp://test.com'); // false
validURL(''); // false

validLowerCase(str)

描述:判断是否小写

参数

参数名类型
strstring

示例

ts
validLowerCase('abc'); // true
validLowerCase('aBc'); // false
validLowerCase('abc123'); // false
validLowerCase(''); // false

validUpperCase(str)

描述:判断是否大写

参数

参数名类型
strstring

示例

ts
validUpperCase('ABC'); // true
validUpperCase('ABc'); // false
validUpperCase(''); // false

validAlphabets(str)

描述:判断是否字母字符串

参数

参数名类型
strstring

示例

ts
validAlphabets('abcABC'); // true
validAlphabets('abc123'); // false
validAlphabets('abc def'); // false

validEmail(email)

描述:判断是否合法邮箱地址

参数

参数名类型
emailstring

示例

ts
validEmail('test@example.com'); // true
validEmail('user.name@domain.co'); // true
validEmail('test'); // false
validEmail('@example.com'); // false
validEmail('test@'); // false

isString(str)

描述:判断是否字符串

参数

参数名类型
strstring

示例

ts
isString('hello'); // true
isString(''); // true
isString(123); // false
isString(null); // false
isString(undefined); // false
isString([]); // false

isArray(arg)

描述:判断是否数组

参数

参数名类型
argArray

示例

ts
isArray([] as any); // true
isArray([1, 2, 3] as any); // true
isArray('hello'); // false
isArray(123 as any); // false

isQQNumber(qq)

描述:判断是否合法的QQ号码

参数

参数名类型描述
qqString待检测的qq号

示例

ts
isQQNumber(777777); // true
isQQNumber('ddd'); // false
isQQNumber('1234'); // false  // 少于 5 位
isQQNumber('12345678901'); // false  // 超过 10 位
isQQNumber('01234567'); // false  // 0 开头

isEmail(email)

描述:判断是否合法的邮箱号码

参数

参数名类型描述
emailString待检测的邮箱号码

示例

ts
isEmail('test@qq.com'); // true
isEmail('user.name@domain.com'); // true
isEmail('invalid'); // false
isEmail(''); // false

isMobile(phone)

描述:判断是否合法的手机号

参数

参数名类型描述
phoneString待检测的手机号

示例

ts
isMobile('13800138000'); // true
isMobile('19912345678'); // true
isMobile('12345678901'); // false  // 不是 1[3-9] 开头
isMobile('1380013800'); // false  // 位数不够
isMobile('abc'); // false

isTel(tel)

描述:判断是否合法的电话号码

参数

参数名类型描述
telString待检测的电话号码

示例

ts
isTel('0755-1234567'); // true
isTel('12345678'); // true
isTel('123'); // false
isTel('abc'); // false

isWindows()

描述:判断当前操作系统是否为 Windows

参数

返回: 如果是 Windows 系统返回 true,否则返回 false

示例

ts
if (isWindows()) {
  console.log('当前运行在 Windows 系统上');
}