framework4js
Version:
Framework-for-js is a better Javascript's framework
128 lines (125 loc) • 3.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isArray = isArray;
exports.isBoolean = isBoolean;
exports.isClass = isClass;
exports.isColor = isColor;
exports.isDate = isDate;
exports.isEmail = isEmail;
exports.isEmpty = isEmpty;
exports.isEmptyObject = isEmptyObject;
exports.isExist = isExist;
exports.isFunction = isFunction;
exports.isNull = isNull;
exports.isNumber = isNumber;
exports.isObject = isObject;
exports.isPhone = isPhone;
exports.isPromise = void 0;
exports.isRegExp = isRegExp;
exports.isString = isString;
exports.isUndefined = isUndefined;
exports.isWindow = isWindow;
// import type { ComponentPublicInstance, VNodeNormalizedChildren } from 'vue'
// import { Dayjs } from 'dayjs'
// import { VNode } from 'vue'
//
var opt = Object.prototype.toString;
/**
* isArray
* 是否数组
* @param obj
* @return {boolean}
*/
function isArray(obj) {
return opt.call(obj) === '[object Array]';
}
function isNull(obj) {
return opt.call(obj) === '[object Null]';
}
function isBoolean(obj) {
return opt.call(obj) === '[object Boolean]';
}
function isObject(obj) {
return opt.call(obj) === '[object Object]';
}
var isPromise = function isPromise(obj) {
return opt.call(obj) === '[object Promise]';
};
exports.isPromise = isPromise;
function isString(obj) {
return opt.call(obj) === '[object String]';
}
function isNumber(obj) {
return opt.call(obj) === '[object Number]' && obj === obj; // eslint-disable-line
}
function isRegExp(obj) {
return opt.call(obj) === '[object RegExp]';
}
function isDate(obj) {
return opt.call(obj) === '[object Date]';
}
function isHex(color) {
return /^#[a-fA-F0-9]{3}$|#[a-fA-F0-9]{6}$/.test(color);
}
function isRgb(color) {
return /^rgb\((\s*\d+\s*,?){3}\)$/.test(color);
}
function isRgba(color) {
return /^rgba\((\s*\d+\s*,\s*){3}\s*\d(\.\d+)?\s*\)$/.test(color);
}
function isColor(color) {
return isHex(color) || isRgb(color) || isRgba(color);
}
function isUndefined(obj) {
return obj === undefined;
}
function isFunction(obj) {
return typeof obj === 'function';
}
function isClass(value) {
// isFunction
if (typeof value !== 'function') {
return false;
}
// Function toString
var makeToString = value.toString();
// async function or arrow function
if (value.prototype === undefined) return false;
// generator function or malformed definition
if (value.prototype.constructor !== value) return false;
// ES6 class -space
if (makeToString.slice(0, 6) === 'class ') return true;
// has own prototype properties -"arguments", "caller"
if (Object.getOwnPropertyNames(value.prototype).length >= 2) return true;
// anonymous function
if (/^function\s+\(|^function\s+anonymous\(/.test(makeToString)) return false;
// Other
return false;
}
function isEmptyObject(obj) {
return isObject(obj) && Object.keys(obj).length === 0;
}
function isEmpty(obj) {
// null undefined '' 排除 0
if (!obj && obj !== 0) {
return true;
}
return isEmptyObject(obj);
}
function isExist(obj) {
return obj || obj === 0;
}
function isWindow(el) {
return el === window;
}
function isPhone(obj) {
// const rule = /^(13[0-9]|14[5-9]|15[012356789]|16[012356789]|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/
var rule = /^(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])[0-9]{8}$/;
return rule.test(obj);
}
function isEmail(obj) {
var rule = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return rule.test(obj);
}