UNPKG

framework4js

Version:

Framework-for-js is a better Javascript's framework

128 lines (125 loc) 3.48 kB
"use strict"; 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); }