define(function (require, exports, module) { //判断当前日期是否大于某个日期 // yyyy-MM-dd HH:mm:ss var greaterThanTime = function (time) { var now = new Date(); var end = parseDate(time); var ret = false; if (now.getTime() > end.getTime()) { ret = true; } // logger.debug([formatTime(now),">", formatTime(end),ret]); return ret; } //跟greaterThanTime恰好相反 var lessThanTime = function (t) { return !greaterThanTime(t); } //yyyy-MM-dd HH:mm:ss --> Date objet var parseDate = function (time) { var t = String(time); var year = parseInt(t.substring(0, 4)), month = parseInt(t.substring(5, 7)), day = parseInt(t.substring(8, 10)), hour = parseInt(t.substring(11, 13)), min = parseInt(t.substring(14, 16)), sec = parseInt(t.substring(17, 19)); // logger.debug([year,month,day,hour,min,sec]) var end = new Date(); end.setFullYear(year); end.setMonth(month - 1, day); end.setHours(hour); end.setMinutes(min); end.setSeconds(sec); end.setMilliseconds(0); return end; } var parseXML = function (data) { var xml, tmp; if (window.DOMParser) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString(data, "text/xml"); } else { // IE xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = "false"; xml.loadXML(data); } tmp = xml.documentElement; if (!tmp || !tmp.nodeName || tmp.nodeName === "parsererror") { return null; } return xml; } var xmlToJson = function (obj) { if (this == null) return null; var retObj = new Object; buildObjectNode(retObj, /*jQuery*/ obj); return retObj; function buildObjectNode(cycleOBJ, /*Element*/ elNode) { /*NamedNodeMap*/ var nodeAttr = elNode.attributes; if (nodeAttr != null) { if (nodeAttr.length && cycleOBJ == null) cycleOBJ = new Object; for (var i = 0; i < nodeAttr.length; i++) { cycleOBJ[nodeAttr[i].name] = nodeAttr[i].value; } } var nodeText = "text"; if (elNode.text == null) nodeText = "textContent"; /*NodeList*/ var nodeChilds = elNode.childNodes; if (nodeChilds != null) { if (nodeChilds.length && cycleOBJ == null) cycleOBJ = new Object; for (var i = 0; i < nodeChilds.length; i++) { if (nodeChilds[i].tagName != null) { if (nodeChilds[i].childNodes[0] != null && nodeChilds[i].childNodes.length <= 1 && (nodeChilds[i].childNodes[0].nodeType == 3 || nodeChilds[i].childNodes[0].nodeType == 4)) { if (cycleOBJ[nodeChilds[i].tagName] == null) { cycleOBJ[nodeChilds[i].tagName] = nodeChilds[i][nodeText]; } else { if (typeof (cycleOBJ[nodeChilds[i].tagName]) == "object" && cycleOBJ[nodeChilds[i].tagName].length) { cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length] = nodeChilds[i][nodeText]; } else { cycleOBJ[nodeChilds[i].tagName] = [cycleOBJ[nodeChilds[i].tagName]]; cycleOBJ[nodeChilds[i].tagName][1] = nodeChilds[i][nodeText]; } } } else { if (nodeChilds[i].childNodes.length) { if (cycleOBJ[nodeChilds[i].tagName] == null) { cycleOBJ[nodeChilds[i].tagName] = new Object; buildObjectNode(cycleOBJ[nodeChilds[i].tagName], nodeChilds[i]); } else { if (cycleOBJ[nodeChilds[i].tagName].length) { cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length] = new Object; buildObjectNode(cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length - 1], nodeChilds[i]); } else { cycleOBJ[nodeChilds[i].tagName] = [cycleOBJ[nodeChilds[i].tagName]]; cycleOBJ[nodeChilds[i].tagName][1] = new Object; buildObjectNode(cycleOBJ[nodeChilds[i].tagName][1], nodeChilds[i]); } } } else { cycleOBJ[nodeChilds[i].tagName] = nodeChilds[i][nodeText]; } } } } } } } var o = { xmlToJson:xmlToJson, parseXML: parseXML, parseDate: parseDate, lessThanTime: lessThanTime, greaterThanTime: greaterThanTime, /* * 获取 url 中指定变量的值 * @param {[String]} key name [变量名] * @param {[String]} url [url地址] * */ getUrlParam: function (name, url) { var re = new RegExp("[\\?&#]" + name + "=([^&#]+)", "gi"); var ma = (url || location.href).match(re); var strArr; if (ma && ma.length > 0) { strArr = (ma[ma.length - 1]).split("="); if (strArr && strArr.length > 1) { return strArr[1]; } return '' } return ''; }, now: Date.now || function () { return new Date().getTime(); }, debounce: function (func, wait, immediate) { var timeout, args, context, timestamp, result; var later = function () { var last = o.now() - timestamp; if (last < wait) { timeout = setTimeout(later, wait - last); } else { timeout = null; if (!immediate) { result = func.apply(context, args); context = args = null; } } }; return function () { context = this; args = arguments; timestamp = o.now(); var callNow = immediate && !timeout; if (!timeout) { timeout = setTimeout(later, wait); } if (callNow) { result = func.apply(context, args); context = args = null; } return result; }; }, imageLoad: function (element, options) { var imgs = (element instanceof $ ? element : $(element)).find('img'); imgs.length && imgs.on('load', function () { $.isFunction(options.done) && options.done(this) }).one('error', function () { $.isFunction(options.fail) && options.fail(this) }) }, format: function (text, obj) { var c = obj || {}; var b = text; for (var a in c) { if (c.hasOwnProperty(a)) { b = b.replace(new RegExp("\\$\\{" + a + "\\}", "gm"), c[a]); } } return b; }, htmlEscape: function (input) { if (typeof (input) !== "string") return input; var result = []; var length = input.length; for (var i = 0; i < length; i++) { var c = input.charAt(i).toString(); if (c == '&') { result.push("&"); } else if (c == '\"') { result.push("""); } else if (c == '<') { result.push("<"); } else if (c == '>') { result.push(">"); } else if (c == '\'') { result.push("'"); } else if (c == '\\') { result.push("\"); } else { result.push(c); } } return result.join(""); }, JSONString: (window.JSON && JSON.stringify) || function (vContent) { if (vContent instanceof Object) { var sOutput = ""; if (vContent.constructor === Array) { for (var nId = 0; nId < vContent.length; sOutput += this.JSONString(vContent[nId]) + ",", nId++); return "[" + sOutput.substr(0, sOutput.length - 1) + "]"; } if (vContent.toString !== Object.prototype.toString) { return "\"" + vContent.toString().replace(/"/g, "\\$&") + "\""; } for (var sProp in vContent) { sOutput += "\"" + sProp.replace(/"/g, "\\$&") + "\":" + this.JSONString(vContent[sProp]) + ","; } return "{" + sOutput.substr(0, sOutput.length - 1) + "}"; } return typeof vContent === "string" ? "\"" + vContent.replace(/"/g, "\\$&") + "\"" : String(vContent); }, trim : function(str){ str = str.replace(/\s+/g,""); return str; }, removeHtmlTab :function(tab) { return tab;//删除所有HTML标签 } , html_encode:function(str) { var s = ""; if (!str || str.length == 0) return ""; s = str.replace(/&/g, ">"); s = s.replace(//g, ">"); s = s.replace(/ /g, " "); s = s.replace(/\'/g, "'"); s = s.replace(/\"/g, """); s = s.replace(/\n/g, "
"); return s; } }; module.exports = o; })