當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript的常用工具汇总
生活随笔
收集整理的這篇文章主要介紹了
JavaScript的常用工具汇总
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下是基于jquery寫的關于JavaScript處理的工具類
/*** 通用類* @type {{}}*/ var Public = {//頁容量LIMIT: 10 }; /*** 發送POST方式的REST請求* @param url 請求路徑* @param data 數據* @param successFun 成功時的回調函數* @param errMsg 失敗時提示信息*/ Public.postRest = function (url, data, successFun, errMsg) {var reqUrl = URI + '/rest' + url;$.ajax({type: 'POST',url: reqUrl,data: JSON.stringify(data),contentType: 'application/json',success: function (resp) {if (resp != null && resp.status == 'success') {successFun(resp.data);} else {var msg = errMsg != null ? errMsg : '數據保存失敗';Public.alert(msg);Public.debug('保存失敗:' + reqUrl);}}}); }; /*** 發送DELETE方式的REST請求* @param url 請求路徑* @param data 數據* @param successFun 成功時的回調函數* @param errMsg 失敗時提示信息*/ Public.deleteRest = function (url, data, successFun, errMsg) {var reqUrl = URI + '/rest' + url;$.ajax({type: 'DELETE',url: reqUrl,data: JSON.stringify(data),contentType: 'application/json',success: function (resp) {if (resp != null && resp.status == 'success') {successFun(resp.data);} else {var msg = errMsg != null ? errMsg : '數據刪除失敗';Public.alert(msg);Public.debug('刪除失敗:' + reqUrl);}}}); }; /*** 發送PUT方式的REST請求* @param url 請求路徑* @param data 數據* @param successFun 成功時的回調函數* @param errMsg 失敗時提示信息*/ Public.putRest = function (url, data, successFun, errMsg) {var reqUrl = URI + '/rest' + url;$.ajax({type: 'PUT',url: reqUrl,data: JSON.stringify(data),contentType: 'application/json',success: function (resp) {if (resp != null && resp.status == 'success') {successFun(resp.data);} else {var msg = errMsg != null ? errMsg : '數據更新失敗';Public.alert(msg);Public.debug('更新失敗:' + reqUrl);}}}); }; /*** 發送GET方式的REST請求* @param url 請求路徑* @param successFun 成功時的回調函數* @param errMsg 失敗時提示信息*/ Public.getRest = function (url, successFun, errMsg) {var reqUrl = URI + '/rest' + url;$.get(reqUrl, function (resp) {if (resp != null && resp.status == 'success') {successFun(resp.data);} else {var msg = errMsg != null ? errMsg : '獲取數據為空';Public.alert(msg);Public.debug('獲取為空:' + reqUrl);}}); }; /*** 發送GET方式的REST請求* @param url 請求路徑* @param successFun 成功時的回調函數* @param errMsg 失敗時提示信息*/ Public.getSyncRest = function (url, successFun, errMsg) {var reqUrl = URI + '/rest' + url;$.ajax({type: 'GET',async: false,url: reqUrl,contentType: 'application/json',success: function (resp) {if (resp != null && resp.status == 'success') {successFun(resp.data);} else {var msg = errMsg != null ? errMsg : '獲取數據失敗';Public.alert(msg);Public.debug('獲取失敗:' + reqUrl);}}}); };/*** 顯示提示信息* @param msg*/ Public.msg = function (msg) {var delay = arguments[1] ? arguments[1] : 5000;//延時使消息消失setTimeout(function () {$.messager.show({title: '消息',msg: msg,timeout: delay});}, 100); }; /*** 顯示警告信息*/ Public.alert = function (msg) {$.messager.alert('警告', msg, 'warnimg'); };/*** 顯示提示信息* */ Public.infoMsg = function (msg) {$.messager.alert('信息', msg, 'message'); };/*** 顯示操作確認框* @param msg* @param callback*/ Public.comfirm = function (msg, callback) {$.messager.confirm('確認', msg, function (r) {if (r) {callback();}}); };/*** 判斷是否為空或者空字符串*/ Public.isNull = function (text) {return text == null || text == ''; }; /*** 處理text為空的情況,當text為空時用cover替換* @param text 要判斷是否為空的字符串* @param cover 替換的字符串* @returns {*}*/ Public.dealNull = function (text, cover) {if (cover == null) {cover = '';}text = Public.isNull(text) ? cover : text;return text; };/*** 判斷是否為正整數* @num* */ Public.isInt = function (num) {var reg = /^\+?[1-9][0-9]*$/;return reg.test(num); };/*** 判斷是否為正小數* @str* */ Public.isDouble = function (str) {if (str.match(/^(:?(:?\d+.\d+)|(:?\d+))$/)) {return true;}return false; };/*** 判斷字符串是否為ip地址* @param str*/ Public.isIp = function (str) {var re = /^([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/;if (re.test(str)) {return true;}return false; };/*** 判斷字符串是否符合接口格式。例如:http://www.runoob.com:80/html/html-tutorial.html*@param str* */ Public.isApi = function (str) {var re = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;if (re.test(str)) {return true;}return false; }/***創建彈出對話框* @param {Object} title 對話框標題* @param {Object} content 對話框內容* @param {Object} classStr 對話框的class* @param {Object} width 寬度* @param {Object} height 高度* @param {Object} isClose 是表示關閉,否表示銷毀*/ Public.createDialog = function (title, content, classStr, width, height,isClose, isModal) {var styleStr = Public.getDialogStyle(width, height);isModal = isModal == null ? true : isModal;content = '<div class="p-dialog-content">'+ content+ '</div><div class="messager-button"><a href="javascript:void(0)" class="l-btn js-ok" style="margin-left: 10px;"><span class="l-btn-left"><span class="l-btn-text">確定</span></span></a><a href="javascript:void(0)" class="l-btn js-cancel" style="margin-left: 10px;"><span class="l-btn-left"><span class="l-btn-text">取消</span></span></a></div>';$('<div class="' + classStr + '" style="' + styleStr + '"/>').dialog({title: title,modal: isModal,resizable: true,collapsible: true,maximizable: true,content: content,onClose: function () {if (!isClose) {$(this).dialog('destroy');}}});//解決IE6、IE7下,彈出框滾動條無效的bug,因被easyui重置樣式,故直接用js設置//if(IE6 || IE7){$('.dialog-content').css('left', '0');$('.dialog-content').css('top', '0');//}$('.' + classStr + ' .js-cancel').unbind('click').bind('click', function () {var node = $('.' + classStr);if (!isClose) {node.dialog('destroy');} else {node.dialog('close');}}); }; /***創建彈出對話框* @param {Object} title 對話框標題* @param {Object} content 對話框內容* @param {Object} classStr 對話框的class* @param {Object} styleStr 對話框樣式字符串* @param {Object} isClose 是表示關閉,否表示銷毀*/ Public.createSimpleDialog = function (title, content, classStr, styleStr,isClose, isModal) {isModal = isModal == null ? true : isModal;$('<div class="' + classStr + '" style="' + styleStr + '"/>').dialog({title: title,modal: isModal,resizable: true,collapsible: true,maximizable: true,content: content,onClose: function () {if (!isClose) {$(this).dialog('destroy');}}});//解決IE6、IE7下,彈出框滾動條無效的bug,因被easyui重置樣式,故直接用js設置//if(IE6 || IE7){$('.dialog-content').css('left', '0');$('.dialog-content').css('top', '0');//} }; /*** 設置彈出框的位置及寬高* @param {Object} percent 頁面的百分比,如0.8*/ Public.getDialogStyle = function (width, height) {var d_w = document.body.clientWidth; //頁面寬度var d_h = document.body.clientHeight;//頁面高度width = width > d_w ? d_w * 0.9 : width;height = height > d_h ? d_h * 0.9 : height;var left = parseInt((d_w - width) / 2);var top = parseInt((d_h - height) / 2);var style = 'left:' + left + 'px;top:' + top + 'px;width:' + width+ 'px;height:' + height + 'px;';return style; };/*** 去重復的合并2個數組* @arr1 數組1* @arr2 數組2*/ Public.mergeArray = function (arr1, arr2) {var _arr = [];for (var i = 0; i < arr1.length; i++) {_arr.push(arr1[i]);}var _dup;for (var i = 0; i < arr2.length; i++) {_dup = false;for (var _i = 0; _i < arr1.length; _i++) {if (arr2[i] === arr1[_i]) {_dup = true;break;}}if (!_dup) {_arr.push(arr2[i]);}}return _arr; };//阻止事件冒泡函數 Public.stopPropagation = function (e) {if (e && e.stopPropagation) {e.stopPropagation();} else {window.event.cancelBubble = true;} }; /*** 計算所給時間hours小時后的時間* @param beginTime* @param hours*/ Public.addTime = function (beginTime, hours) {beginTime = beginTime.replace(/-/g, "/");var date = new Date(beginTime);date.setHours(date.getHours() + hours);var str = Public.getTimeStr(date);return str; }; /*** 格式化時間* @param date*/ Public.getTimeStr = function (date) {var y = date.getFullYear();var m = date.getMonth() + 1;var d = date.getDate();var h = date.getHours();var mm = date.getMinutes();var s = date.getSeconds();m = m > 9 ? m : '0' + m;d = d > 9 ? d : '0' + d;h = h > 9 ? h : '0' + h;mm = mm > 9 ? mm : '0' + mm;s = s > 9 ? s : '0' + s;return y + '-' + m + '-' + d + ' ' + h + ':' + mm + ':' + s; };/*** 獲取當前時間字符串*/ Public.getNowStr = function () {var date = new Date();var str = Public.getTimeStr(date);return str; };/*** 打印debug信息*/ Public.debug = function (msg) {//谷歌if (console != null) {console.log(msg);} else {//非谷歌} };/*** 顯示沒有查詢結果*/ Public.showNoResult = function (el, field, colspan) {//添加一個新數據行,第一列的值為你需要的提示信息var row = {};row[field] = '<div style="text-align:center;color:red">沒有相關記錄!</div>';$(el).datagrid('appendRow', row).datagrid('mergeCells', {index: 0,field: field,colspan: colspan}); };/*** 判斷字符串是否在數組中* @str 字符串* @array 數組* */ Public.isInArray = function (str, array) {var result = $.inArray(str, array);if (result > -1) {return true;}return false; };/*** 判斷ip是否在一個段* @addr1 ip地址1* @addr2 ip地址2* @mask 子網掩碼* */ Public.isEqualIPAddress = function (addr1, addr2, mask) {if (!addr1 || !addr2 || !mask) {return false;}var res1 = [], res2 = [];addr1 = addr1.split(".");addr2 = addr2.split(".");mask = mask.split(".");for (var i = 0, ilen = addr1.length; i < ilen; i += 1) {res1.push(parseInt(addr1[i]) & parseInt(mask[i]));res2.push(parseInt(addr2[i]) & parseInt(mask[i]));}if (res1.join(".") == res2.join(".")) {return true;} else {return false;} };/*** 前端分頁器* @data json數組* */ Public.pagerFilter = function (data) {if (typeof(data) == 'undefined') {data = {total: 0, rows: []};}var dg = $('.js-monitor-table');var opts = dg.datagrid('options');var pager = dg.datagrid('getPager');pager.pagination({onSelectPage: function (pageNum, pageSize) {opts.pageNumber = pageNum;opts.pageSize = pageSize;pager.pagination('refresh', {pageNumber: pageNum,pageSize: pageSize});dg.datagrid('loadData', data);}});if (!data.originalRows) {data.originalRows = (data.rows);}var start = (opts.pageNumber - 1) * parseInt(opts.pageSize);var end = start + parseInt(opts.pageSize);data.rows = (data.originalRows.slice(start, end));return data; };/*** 獲取字符串的長度,包括空格* @str* */ Public.getStrLength = function (str) {//獲得字符串實際長度,中文2,英文1var realLength = 0, len = str.length, charCode = -1;for (var i = 0; i < len; i++) {charCode = str.charCodeAt(i);if (charCode >= 0 && charCode <= 128) realLength += 1;else realLength += 2;}return realLength; };/*** 截取字符串(漢字按照2字節算)* @str 要截取的字符串* @len 要截取的字節數* */ Public.cutStr = function (str, len) {var temp,icount = 0,patrn = /[^\x00-\xff]/;strre = "";for (var i = 0; i < str.length; i++) {if (icount <= len - 1) {temp = str.substr(i, 1);if (patrn.exec(temp) == null) {icount = icount + 1} else {icount = icount + 2}strre += temp} else {break;}}return strre; };/*** 全部替換* @s1* @s2* */ Public.replaceAll = function (s1, s2) {return this.replace(new RegExp(s1, "gm"), s2) }/*** 清除字符串兩邊的空格* @str* */ Public.trim = function (str) {return str.replace(/(^\s*)|(\s*$)/g, ""); };/*** 清除字符串中的所有空格* @str* */ Public.trimAll = function (str) {return str.replace(/(^\s+)|(\s+$)/g, "").replace(/\s/g, ""); };/*** 清除字符串左邊的空格* @str* */ Public.ltrim = function (str) {return str.replace(/^(\s*| *)/, ""); };/*** 清除字符串右邊的空格* @str* */ Public.rtrim = function (str) {return str.replace(/(\s*| *)$/, ""); };/*** 判斷字符串是否以某個字符開頭* @s* */ Public.startWith = function (s) {return this.indexOf(s) == 0; };/*** 判斷字符串是否以某個字符結束* @s* */ Public.endWith = function (s) {var d = this.length - s.length;return (d >= 0 && this.lastIndexOf(s) == d); };/*** 轉義htmlbiaoqian* @text 文本* */ Public.htmlEncode = function (text) {return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>'); };/*** 加入收藏夾* @sURL* @sTitle* */ Public.AddFavorite = function (sURL, sTitle) {try {window.external.addFavorite(sURL, sTitle)} catch (e) {try {window.sidebar.addPanel(sTitle, sURL, "");} catch (e) {alert("加入收藏失敗,請使用Ctrl+D進行添加");}} };/*** 獲取指定名稱的cookie的值* @objName* */ Public.getCookie = function (objName) {var arrStr = document.cookie.split("; ");for (var i = 0; i < arrStr.length; i++) {//獲取單個cookiesvar temp = arrStr[i].split("=");if (temp[0] == objName) {if (temp.length > 1) {return unescape(temp[1]);} else {return "";}}}return ""; };/*** 清除所有的cookie* */ Public.clearCookie = function () {var keys = document.cookie.match(/[^ =;]+(?=\=)/g);if (keys) {for (var i = keys.length; i--;)document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString();} };/*** 是否未obj對象* @object* */ Public.isObj = function (object) {return object && typeof (object) == 'object' && Object.prototype.toString.call(object).toLowerCase() == "[object object]"; };/*** 是否是數組* @object* */ Public.isArray = function (object) {return object && typeof (object) == 'object' && object.constructor == Array; };/*** 獲取對象屬性個數* @object* */ Public.getLength = function (object) {var count = 0;for (var i in object) count++;return count; };/*** 比較兩個對象是否相同* @objA* @objB* */ Public.Compare = function (objA, objB) {if (!Public.isObj(objA) || !Public.isObj(objB)) return false; //判斷類型是否正確if (Public.getLength(objA) != Public.getLength(objB)) return false; //判斷長度是否一致return Public.CompareObj(objA, objB, true);//默認為true };/*** 比較兩個對象是否相同* @objA* @objB* @flag* */ Public.CompareObj = function (objA, objB, flag) {for (var key in objA) {if (!flag) //跳出整個循環break;if (!objB.hasOwnProperty(key)) {flag = false;break;}if (!Public.isArray(objA[key])) { //子級不是數組時,比較屬性值if (objB[key] != objA[key]) {flag = false;break;}} else {if (!Public.isArray(objB[key])) {flag = false;break;}var oA = objA[key], oB = objB[key];if (oA.length != oB.length) {flag = false;break;}for (var k in oA) {if (!flag) //這里跳出循環是為了不讓遞歸繼續break;flag = Public.CompareObj(oA[k], oB[k], flag);}}}return flag; };總結
以上是生活随笔為你收集整理的JavaScript的常用工具汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java处理日期的工具类DateUtil
- 下一篇: 如何理解java中String的不可变性