判断字符串、对象、数组、函数、电话、邮箱、链接、json字符串类型
export function isString(obj: any) {
return Object.prototype.toString.call(obj) === "[object String]";
}
export function isObject(obj: any) {
return Object.prototype.toString.call(obj) === "[object Object]";
}
export function isEmptyObject(object: object) {
if (!object) return true;
return !Object.keys(object).length;
}
export function isArray(arr: any) {
return Array.isArray(arr);
}
export function isFunction(fn: any) {
const getType = {};
return fn && getType.toString.call(fn) === "[object Function]";
}
export function isUndefined(val: any) {
return val === void 0;
}
export function isDefined(val: any) {
return val !== undefined && val !== null;
}
export function isPhone(phone: string) {
return /1\d{10}$/.test(phone);
}
export function isEmail(email: string) {
return /^\w+((.\w+)|(-\w+))@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+).[A-Za-z0-9]+$/.test(email);
}
export function isExternal(path: string) {
return /^(https?:|mailto:|tel:)/.test(path);
}
export function isJSON(str: any) {
if (typeof str === 'string') {
try {
const obj = JSON.parse(str);
return !!(typeof obj === 'object' && obj);
} catch (e) {
return false;
}
}
}