vue-form-check
Version:
表单验证
60 lines (44 loc) • 1.48 kB
JavaScript
/**
* @file 表单验证
* @author donghongyan
*/
// 基本类型判断非空
const isDefined = value => typeof value !== 'undefined';
const isNull = value => value === null;
const isBoolean = value => typeof value === 'boolean';
const isNumber = value => typeof value === 'number' && !isNaN(value);
const isArray = value => Array.isArray(value);
const isString = value => typeof value === 'string';
const isRegExp = value => typeof value === 'object' && `${value.constructor}` === 'function RegExp() { [native code] }';
const isObject = value => typeof value === 'object' && value !== null && !isArray(value) && !isRegExp(value);
// 回调会用到
const isFunction = value => typeof value === 'function';
// 非空函数判断
function isEmpty(value) {
if (isNull(value) || !isDefined(value)
|| (isNumber(value) && [Infinity, -Infinity].includes(value))
|| (isFunction(value) && value.toString() === new Function().toString())) {
return true;
}
// 主要是判断数组和字符串
if (isArray(value) || isString(value)) {
return value.length === 0;
}
if (isNumber(value) || isBoolean(value) || isFunction(value) || isRegExp(value)) {
return false;
}
// 不包含原型上的keys
return Object.keys(value).length === 0;
}
export default {
isDefined,
isNull,
isBoolean,
isNumber,
isArray,
isString,
isRegExp,
isObject,
isFunction,
isEmpty
};