引入
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
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| idCard | string | 输入字符串 |
示例
isIdCard('123')
// false
isIdCard('34052419800101001X')
// trueisIndex(value, [length])
描述:Checks if value is a valid array-like index.
参数:
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| value | \* | The value to check. | |
| [length] | number | MAX_SAFE_INTEGER | The upper bounds of a valid index. |
返回: boolean
Returns true if value is a valid index, else false.
示例
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); // falseisRegExp(value)
描述:判断数据是不是正则对象
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| value | any | 输入数据 |
返回: boolean
是否是正则对象
示例
isRegExp(1)
// => false
isRegExp(/\d/)
// => trueisDate(value)
描述:判断数据是不是时间对象
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| value | any | 输入数据 |
返回: boolean
是否是时间对象
示例
isDate(1)
// => false
isDate(new Date())
// => trueisFunction(value)
描述:判断数据是不是函数
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| value | any | 输入数据 |
返回: boolean
是否是函数
示例
isFunction(1)
// => false
isFunction(()=>{})
// => trueisPlainObject(val)
描述:判断数据是否为普通对象 排除 null 和数组,只返回纯对象
参数:
| 参数名 | 描述 |
|---|---|
| val | 输入数据 |
返回: 是否为普通对象
示例
isPlainObject({}); // true
isPlainObject([]); // false
isPlainObject(null); // falseisPromise(val)
描述:判断数据是否为 Promise 对象 检查对象是否有 then 和 catch 方法
参数:
| 参数名 | 描述 |
|---|---|
| val | 输入数据 |
返回: 是否为 Promise 对象
示例
isPromise(Promise.resolve()); // true
isPromise({}); // falseisDef(value)
描述:判断值是否已定义(不为 undefined 和 null)
参数:
| 参数名 | 描述 |
|---|---|
| value | 输入数据 |
返回: 是否已定义
示例
isDef(0); // true
isDef(''); // true
isDef(null); // false
isDef(undefined); // falseisObj(x)
描述:判断是否为对象或函数
参数:
| 参数名 | 描述 |
|---|---|
| x | 输入数据 |
返回: 是否为对象或函数
示例
isObj({}); // true
isObj(() => {}); // true
isObj(null); // falseisObject(val)
描述:判断是否为对象类型
参数:
| 参数名 | 描述 |
|---|---|
| val | 输入数据 |
返回: 是否为对象
示例
isObject({}); // true
isObject([]); // true
isObject(null); // falseisImageUrl(url)
描述:判断 URL 是否为图片地址 根据文件扩展名判断(jpeg、jpg、gif、png、svg、webp、jfif、bmp、dpg)
参数:
| 参数名 | 描述 |
|---|---|
| url | URL 地址 |
返回: 是否为图片 URL
示例
isImageUrl('https://example.com/image.jpg'); // true
isImageUrl('https://example.com/video.mp4'); // falseisVideoUrl(url)
描述:判断 URL 是否为视频地址 根据文件扩展名判断(mp4、mpg、mpeg、dat、asf、avi、rm、rmvb、mov、wmv、flv、mkv)
参数:
| 参数名 | 描述 |
|---|---|
| url | URL 地址 |
返回: 是否为视频 URL
示例
isVideoUrl('https://example.com/video.mp4'); // true
isVideoUrl('https://example.com/image.jpg'); // falseisNumber(value)
描述:判断字符串是否为数字格式 支持整数和小数
参数:
| 参数名 | 描述 |
|---|---|
| value | 输入值 |
返回: 是否为数字格式
示例
isNumber('123'); // true
isNumber('123.45'); // true
isNumber('abc'); // falseisExternal(path)
描述:判断是否外部资源
参数:
| 参数名 | 类型 |
|---|---|
| path | string |
示例
isExternal('http://baidu.com'); // true
isExternal('mailto:a@b.com'); // true
isExternal('tel:10086'); // true
isExternal('ttt'); // falsevalidURL(url)
描述:判断是否URL
参数:
| 参数名 | 类型 |
|---|---|
| url | string |
示例
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(''); // falsevalidLowerCase(str)
描述:判断是否小写
参数:
| 参数名 | 类型 |
|---|---|
| str | string |
示例
validLowerCase('abc'); // true
validLowerCase('aBc'); // false
validLowerCase('abc123'); // false
validLowerCase(''); // falsevalidUpperCase(str)
描述:判断是否大写
参数:
| 参数名 | 类型 |
|---|---|
| str | string |
示例
validUpperCase('ABC'); // true
validUpperCase('ABc'); // false
validUpperCase(''); // falsevalidAlphabets(str)
描述:判断是否字母字符串
参数:
| 参数名 | 类型 |
|---|---|
| str | string |
示例
validAlphabets('abcABC'); // true
validAlphabets('abc123'); // false
validAlphabets('abc def'); // falsevalidEmail(email)
描述:判断是否合法邮箱地址
参数:
| 参数名 | 类型 |
|---|---|
string |
示例
validEmail('test@example.com'); // true
validEmail('user.name@domain.co'); // true
validEmail('test'); // false
validEmail('@example.com'); // false
validEmail('test@'); // falseisString(str)
描述:判断是否字符串
参数:
| 参数名 | 类型 |
|---|---|
| str | string |
示例
isString('hello'); // true
isString(''); // true
isString(123); // false
isString(null); // false
isString(undefined); // false
isString([]); // falseisArray(arg)
描述:判断是否数组
参数:
| 参数名 | 类型 |
|---|---|
| arg | Array |
示例
isArray([] as any); // true
isArray([1, 2, 3] as any); // true
isArray('hello'); // false
isArray(123 as any); // falseisQQNumber(qq)
描述:判断是否合法的QQ号码
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
String | 待检测的qq号 |
示例
isQQNumber(777777); // true
isQQNumber('ddd'); // false
isQQNumber('1234'); // false // 少于 5 位
isQQNumber('12345678901'); // false // 超过 10 位
isQQNumber('01234567'); // false // 0 开头isEmail(email)
描述:判断是否合法的邮箱号码
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
String | 待检测的邮箱号码 |
示例
isEmail('test@qq.com'); // true
isEmail('user.name@domain.com'); // true
isEmail('invalid'); // false
isEmail(''); // falseisMobile(phone)
描述:判断是否合法的手机号
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| phone | String | 待检测的手机号 |
示例
isMobile('13800138000'); // true
isMobile('19912345678'); // true
isMobile('12345678901'); // false // 不是 1[3-9] 开头
isMobile('1380013800'); // false // 位数不够
isMobile('abc'); // falseisTel(tel)
描述:判断是否合法的电话号码
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| tel | String | 待检测的电话号码 |
示例
isTel('0755-1234567'); // true
isTel('12345678'); // true
isTel('123'); // false
isTel('abc'); // falseisWindows()
描述:判断当前操作系统是否为 Windows
参数:
返回: 如果是 Windows 系统返回 true,否则返回 false
示例
if (isWindows()) {
console.log('当前运行在 Windows 系统上');
}