数据类型判断

## onion.help ### 1. 功能 进行基本数据类型判断, 通过 Oject.prototype.toString.call(obj) 能够区分 数组 对象 函数 ### 2. 使用场景 #### 2.1. 设置表单的自定义数据类型判断时 ```js form.verify({ astrictNumber: function (value, item) { if (!onion.help.isEmpty(value) && !new RegExp("^[1-4]*$").test(value)) { return '只能填写整数 1 2 3 4'; } } }) ``` #### 2.2. 填写表单, 下拉选择框是必选时 ```js if(onion.help.isEmptyObject(currentSpec)){ onion.layer.tipMsg('请选择你的商品规格'); return; } ``` ### 3. 如何使用 **以下方法皆返回布尔值** 1. onion.help.isString(str) 传入一个字符串, 判断其格式是否是字符串 2. onion.help.isEmpty(o) 传入一个数据, 判断其是否为 `undefined`, `null`, 或空字符串 3. onion.help.isEmptyString(str) 传入一个字符串, 判断其是否为字符串, 为否则提示 "请使用字符串" 4. onion.help.isNumber(num) 传入一个数字, 判断其是否为数字 5. onion.help.isArray(arr) 传入一个数组, 判断其是否为数组 6. onion.help.isEmptyArray(arr) 传入一个数组, 判断其是否为数组, 为否则提示 "请使用数组" 7. onion.help.isFormData(obj) 传入一个 [FormData](https://developer.mozilla.org/zh-CN/docs/Web/API/FormData) 对象, 判断其是否为 FormData 对象 ![image.png](https://cos.easydoc.net/27100029/files/kb083l2l.png) 8. onion.help.isObject(obj) 传入一个对象, 判断其是否为对象 9. onion.help.isFunction(func) 传入一个方法, 判断其是否为方法 10. onion.help.isEmptyObject(obj) 传入一个对象, 判断其是否为对象, 为否则提示 "请使用Object" ### 4. api定义 ```js /** * @desc 辅助函数 - 基本数据类型判断 * * @remark 通过 Oject.prototype.toString.call(obj) 能够区分 数组 对象 函数 * * */ var Type = (function () { var type = {}; var typeArr = ['String', 'Object', 'Number', 'Array', 'Undefined', 'Function', 'Null', 'Symbol', 'FormData']; for (var i = 0; i < typeArr.length; i++) { (function (name) { type['is' + name] = function (obj) { return Object.prototype.toString.call(obj) == '[object ' + name + ']'; } })(typeArr[i]); } return type; })() function Help() {} Help.prototype.isString = function (str) { return Type.isString(str); } Help.prototype.isEmpty = function (o) { return Type.isUndefined(o) === true || Type.isNull(o) === true || o.length === 0 } Help.prototype.isEmptyString = function (str) { if (Type.isString(str) === false) { onion.log.error('请使用字符串'); return false; } return str.length === 0 } Help.prototype.isNumber = function (num) { return Type.isNumber(num); } Help.prototype.isArray = function (arr) { return Type.isArray(arr); } Help.prototype.isEmptyArray = function (arr) { if (Type.isArray(arr) === false) { onion.log.error('请使用数组'); return false; } else { return arr.length === 0; } } Help.prototype.isFormData = function (obj) { return Type.isFormData(obj); } Help.prototype.isObject = function (obj) { return Type.isObject(obj); } Help.prototype.isFunction = function (func) { return Type.isFunction(func); } Help.prototype.isEmptyObject = function (obj) { if (Type.isObject(obj) === false) { onion.log.error('请使用Object'); } else { return $.isEmptyObject(obj); } } onion.help = new Help(); onion.Type = Type; ```