| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295 | /*此js作为 utility库 主要用于 类型判断*/Namespace.register("U.Ut");//判断是否为数组U.Ut.isArray = Array.isArray;/*** 判断字符串是否为Guid** @param   {string} 需要判断的字符串* @return  {boolean} 是否为guid*/U.Ut.isGuid = function (UST) {    return U.MS.isGuid(UST);}/*** 判断值是否等于formdate** @param   {object} 需要判断的FormData* @return  {boolean} 是否为FormData*/U.Ut.isFormData = function (obj) {    return obj.toString() === "[object FormData]";}/*** 判断是否为对象** @param   {object} 判断对象是否为object对象* @return  {boolean} 是否为FormData*/U.Ut.isObject = function (UDE) {    return (typeof UDE == "object" && UDE !== null);}/*** 是否参与for in循环的对象** @param   {object} 判断是否允许参加在for循环里* @return  {boolean} 允许for in*/U.Ut.IsFObj = function (UDE) {    var i, _ = ["isArray", "isFunction", "isObject"]; //三种可参与for in的    for (i = 0; i < _.length; i++) {        if (U.M[_[i]](UDE)) {            return _[i].substr(2);        }    }    return false;}/*** 判断数组是否可用** @param   {array} 判断数组是否有值* @return  {boolean} 是否为有值数组*/U.Ut.isArrayLike = function (UDE) {    return UDE && UDE.length && UDE.length < Array.MAX_ARRAY_INDEX;}/*** 判断是否为bool** @param  {array} 判断数组是否有值* @return  {boolean} 是否为boolean值*/U.Ut.isBoolean = function (UDE) {    return typeof UDE === "boolean";}/*** 判断是否为空** @param  {object} 判断内容是否为空* @return  {boolean} 是否为null*/U.Ut.isNull = function (UDE) {    return UDE === null;}/*** 判断是否为数字** @param  {array} 判断数组是否有值* @return  {boolean} 是否为number*/U.Ut.isNumber = function (UDE) {    return typeof UDE == "number";}/*** 判断是否为字符串数字** @param  {array} 判断数组是否有值* @return  {boolean} 是否为number*/U.Ut.isStringInt = function (UDE) {    return U.Ut.isNumber(UDE) || U.MS.Num.test(UDE);}/*** 判断是否为NaN** @param  {array} 判断数组是否有值* @return  {boolean} 是否为number*/U.Ut.isNaN = function (UDE) {    typeof UDE == "NaN";}/*** 判断是否是无限循环数字** @param  {number} 判断数组是否有值* @return  {boolean} 是否为number*/U.Ut.isFinite = function (UDE) {    return !isNaN(parseFloat(UDE)) && isFinite(UDE);}/*** 判断是否为字符串** @param  {string} 判断的字符串* @return  {boolean} 是否为字符串*/U.Ut.isString = function (str) {    return typeof str == "string"}/*** 判断是否为Undefined** @param  {number} 判断数组是否有值* @return  {boolean} 是否为number*/U.Ut.isUndefined = function (UDE) {    return (UDE === void 0);}/*** 判断是否为正则** @param  {RegExp} 正则值* @return  {boolean} 是否为RegExp*/U.Ut.isRegExp = function (UDE) {    return U.Ut.isObject(UDE) && U.M.objectToString(UDE) == "[object RegExp]";}/*** 判断是否为时间** @param  {Date} 时间对象值* @return  {boolean} 是否为Date*/U.Ut.isDate = function (UDE) {    return U.Ut.isObject(UDE) && U.M.objectToString(UDE) == "[object Date]";}/*** 判断是否为错误** @param  {Error} 错误对象值* @return  {boolean} 是否为错误类型*/U.Ut.isError = function (UDE) {    return U.Ut.isObject(UDE) && U.M.objectToString(UDE) == "[object Error]";}/*** 判断是否为函数类型** @param  {function} 函数值* @return  {boolean} 函数对象值*/U.Ut.isFunction = function (UDE) {    return ((typeof UDE == "function" && UDE.prototype) || U.M.objectToString(UDE) == "[object Function]");}/*** 判断是否为传参类** @param  {object} 函数值* @return  {boolean} 返回是否为Arguments对象*/U.Ut.isArguments = function (UDE) {    return (typeof (UDE == "object") && _$(UDE).has("callee"));}/*** 判断object是否是空对象** @param  {object} 对象值* @return  {boolean} 是否空对象*/U.Ut.isEmpty = function (UDE) {    var i, _UTF = true;    for (i in UDE) {        if (UDE.hasOwnProperty(i)) { _UTF = false; break; }    }    return _UTF;}/*** 判断是否为基础类型** @param  {object} undefined function string number object* @return  {boolean} 是否空对象*/U.Ut.isPrimitive = function (UDE) {    var i, _UCE = ["undefined", "function", "string", "number", "object"];    return _UCE.some(function (UCE, UIE) {        return (typeof UDE) == UCE;    });}/*** 判断是否为event对象** @param  {event} 判断是否为event对象* @return  {boolean} 是否空event对象*/U.Ut.isEvent = function (UDE) {    if (UDE) {        if (UDE == event) { return true; } //直接判断当前对象        else if (event && event.constructor) { //通过链接判断            return U.MS.Event.test(UDE.constructor.toString());        }        else if (typeof UDE == "object") { //判断srcElement            return UDE.srcElement !== undefined;        }    }}///*** 判断对象是否为hemlcontrol** @param  {element} 元素* @return  {boolean} 判断是否为正常元素*/U.Ut.IHtmlC = function (UDOD) {    return UDOD.nodeType != null || UDOD == window || UDOD == document || UDOD.frames != null;}/*** 判断是否为元素** @param  {element} 元素* @return  {boolean} 返回是否为元素 同时不为文本元素*/U.Ut.isElement = function (UDOD) {    return !!(UDOD && UDOD.nodeType === 1);}/*** 函数的作用是给已有的集合添加新的属性。*说明:此函数代替U.Json中的Add方法,以避免调试难调,速度降低的问题* @param  {object} U.CD的自定义变量或者Array,Object等系统变量* @param  {object} 属性的集合,形如:{ "domain": "1473.cn", "SystemId": 0}*/U.Ut.AddObj = function (obj1, obj2) {    for (var i in obj2) {        if (obj2.hasOwnProperty(i)) {            obj1[i] = obj2[i];        }    }    return obj2;}/*** 对象数组,需要批量给对象添加属性。* @param  {array} U.CD的自定义变量或者Array,Object等系统变量* @param  {object} 属性的集合,形如:{ "domain": "1473.cn", "SystemId": 0}*/U.Ut.AddArr = function (UDE, UAE) {    for (var i = 0; i < UDE.length; i++) {        U.Ut.AddObj(UDE[i], UAE);    }}/*** 此函数代替U.Json中的Add方法,以避免调试难调,速度降低的问题。* @param  {object 、 array} 自定义变量或者Array,Object等系统变量,* @param  {object} 属性的集合,形如:{ "domain": "1473.cn", "SystemId": 0}*/U.Ut.AddProperty = function (UDE, UAE) {    //判断是集合或者集合数组,分别调用上2个函数。    U.Ut.isArray(UDE) ? U.Ut.AddArr(UDE, UAE) : U.Ut.AddObj(UDE, UAE);}
 |