数据类型判断
## 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 对象

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;
```