收集整理的常用js,部分方法依赖jquery

/*** 常用js工具类* [lyj 收集整理]* @type {Object}*/var lyj = (function(window, document, $) {var count = 1000;var browser = (function(){var versions = function() {  var u = navigator.userAgent, app = navigator.appVersion;    //移动终端浏览器版本信息  return {         //IE内核  trident: u.indexOf('Trident') > -1, presto: u.indexOf('Presto') > -1, //opera内核  webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核  gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核  mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端  ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端  android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器  iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器  iPad: u.indexOf('iPad') > -1, //是否iPad  webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部  html5plus:u.indexOf('Html5Plus') > -1};  }var language = (navigator.browserLanguage || navigator.language).toLowerCase();return {versions : versions,language : language};})();var tools = { // testtest : function(){alert("测试必须有");       console.log(browser);},/*** @title  ajax封装* @author lyj [author] [2018-06-13]* @param  {[type]} url      [description]* @param  {[type]} data     [description]* @param  {[type]} success  [description]* @param  {[type]} cache    [description]* @param  {[type]} alone    [description]* @param  {[type]} async    [description]* @param  {[type]} type     [description]* @param  {[type]} dataType [description]* @param  {[type]} error    [description]* @return {[type]}          [description]*/ajaxReturn : function(url, data, success, cache, alone, async, type, dataType, error) {//请求类型var type     = type || 'post'; //接收数据类型var dataType = dataType || 'json'; //异步请求var async    = async || true; //独立提交(一次有效的提交)var alone    = alone || false; //浏览器历史缓存var cache    = cache || false; // 成功var success = success ||function(data) {setTimeout(function() {            lyjalert(data.info);},500);if (data.status) {setTimeout(function() {if (data.url) {location.replace(data.url);} else {location.reload(true);}},1500);}  };// 失败var error = error ||function(data) {setTimeout(function() {if (data.status == 404) {lyjalert('请求失败,请求未找到');} else if (data.status == 503) {lyjalert('请求失败,服务器内部错误');} else {lyjalert('请求失败,网络连接超时');}},500);};$.ajax({'url': url,'data': data,'type': type,'dataType': dataType,'async': async,'success': success,'error': error,'jsonpCallback': 'jsonp' + (new Date()).valueOf().toString().substr( - 4),'beforeSend': function() {// lyjalert('loading');            },});},/*** @title  检测 页面类型* @author lyj [author] [2018-05-21]* @return {[type]} [description]*/checktype : function(){var res = "";var arr = [];//判断是否是移动设备打开  if (browser.versions.mobile) {res += "||移动设备打开"; arr['mobile'] = 1;//获取判断用的对象  var ua = navigator.userAgent.toLowerCase();//在微信中打开            if (ua.match(/MicroMessenger/i) == "micromessenger") {  // alert("weixin");  res += "||weixin";  arr['weixin'] = 1;  }//在新浪微博客户端打开 if (ua.match(/WeiBo/i) == "weibo") { // alert("weibo"); res += "||weibo"; arr['weibo'] = 1;       } if (ua.match(/QQ/i) == "qq") { // alert("QQ"); res += "||QQ";arr['QQ'] = 1;  } if(/alipay/ig.test(ua)){ // alert("支付宝"); res += "||支付宝";arr['支付宝'] = 1; } //是否在IOS浏览器打开 if (browser.versions.ios) { // app 打开if(browser.versions.html5plus){res += "||苹果app打开";     arr['iosapp'] = 1;               } else {res += "||苹果浏览器打开"; arr['iosbrowser'] = 1;                                              }}  //是否在安卓浏览器打开 if(browser.versions.android){               // app 打开if(browser.versions.html5plus){res += "||安卓app打开";  arr['androidapp'] = 1;               } else {      res += "||安卓浏览器打开";  arr['androidbrowser'] = 1;              }}  } else {res += "||PC浏览器打开"; arr['pc'] = 1;  }  // 安卓浏览器打开// if(arr['mobile']&&arr['androidbrowser']){//  alert('安卓浏览器打开');// }console.info(arr);return arr;},// 获取 input name[] 数组的值my_array_name : function(namestr) {var valArr = new Array;$("input[name='" + namestr + "[]']").each(function(i) {valArr[i] = $(this).val();});// var priv = valArr.join(',');return valArr;},// 模板赋值assignModel : function(tpl, model){return tpl.replace(/\{([\w,-]+)\}/ig, function(matched, key){return model[key];}); },/*** @title  循环赋值* @author lyj [author] [2018-06-11]* @param  {[type]} id    [模板id 或 class]* @param  {[type]} data  [数组数据]* @param  {[type]} outid [追加数据的div]* @return {[type]}       [description]*/assignTbody : function(id, data, outid){// 追加还是替换var type = arguments[3] ? arguments[3] : 0;// 获取模板数据var tpl = $(id).html();    // 新模板数据var newTpl = '';// 遍历数据,替换到新模板for (x in data){newTpl += this.assignModel(tpl, data[x]);                 }           // 替换if(type == 0){// 替换数据$(outid).html(newTpl);            } else {// 追加数据 $(outid).append(newTpl);}},/*** @title  循环替换数据到 模板* @author lyj [author] [2018-06-25]* @param  {[type]} id   [description]* @param  {[type]} data [description]* @return {[type]}      [description]*/assignDatas: function(id, data){  // 获取模板数据var tpl = $(id).html();// 新模板数据var newTpl = '';// 遍历数据,替换到新模板for (x in data){newTpl += lyj.assignModel(tpl, data[x]);                 } return newTpl;},/*** @title  找到第一个祖先元素* @author lyj [author] [2018-05-21]* @param  {[type]} objM [description]* @param  {[type]} objP [description]* @return {[type]}      [description]*/findFirstElement : function(objM,objP){return $(objM).closest(objP);},/*** @title 删除 第一个祖先元素* @author lyj [author] [2018-05-21]* @param  {[type]} objM [自己]* @param  {[type]} objP [祖先]* @return {[type]}      [description]*/removeFirstElement : function(objM,objP){return $(objM).closest(objP).remove();},copyToClipboard : function(str){var textToClipboard = str;var success = true;if (window.clipboardData) { // Internet Explorerwindow.clipboardData.setData("Text", textToClipboard);} else {// create a temporary element for the execCommand methodvar forExecElement = this.createElementForExecCommand(textToClipboard);/* Select the contents of the element (the execCommand for 'copy' method works on the selection) */this.selectContent(forExecElement);var supported = true;// UniversalXPConnect privilege is required for clipboard access in Firefoxtry {if (window.netscape && netscape.security) {netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");}// Copy the selected content to the clipboard// Works in Firefox and in Safari before version 5success = document.execCommand("copy", false, null);} catch(e) {success = false;}// remove the temporary elementdocument.body.removeChild(forExecElement);}if (success) {alert("The text is on the clipboard, try to paste it!");} else {alert("Your browser doesn't allow clipboard access!");}},createElementForExecCommand : function(textToClipboard){var forExecElement = document.createElement("div");// place outside the visible areaforExecElement.style.position = "absolute";forExecElement.style.left = "-10000px";forExecElement.style.top = "-10000px";// write the necessary text into the element and append to the documentforExecElement.textContent = textToClipboard;document.body.appendChild(forExecElement);// the contentEditable mode is necessary for the  execCommand method in FirefoxforExecElement.contentEditable = true;return forExecElement;},selectContent : function(element){// first create a rangevar rangeToSelect = document.createRange();rangeToSelect.selectNodeContents(element);// select the contentsvar selection = window.getSelection();selection.removeAllRanges();selection.addRange(rangeToSelect);},/*** @title  格式化json字符串 基于c.js* @author lyj [author] [2018-05-21]* @param  {[type]} jsonstr [description]* @return {[type]}         [description]*/formatjson : function(jsonstr){window.TAB = MultiplyString(2, window.SINGLE_TAB);var html = "";try {if (jsonstr == "") jsonstr = "\"\"";var obj = eval("[" + jsonstr + "]");html = ProcessObject(obj[0], 0, false, false, false);return "<PRE class='CodeContainer'>" + html + "</PRE>";      } catch(e) {alert("JSON数据格式不正确:\n" + e.message);       }},/******************************日期时间[datetime]类js***********************************/    datetimeUtils : {patterns: {  PATTERN_ERA: 'G', //Era 标志符 Era strings. For example: "AD" and "BC"  PATTERN_YEAR: 'y', //年  PATTERN_MONTH: 'M', //月份  PATTERN_DAY_OF_MONTH: 'd', //月份的天数  PATTERN_HOUR_OF_DAY1: 'k', //一天中的小时数(1-24)  PATTERN_HOUR_OF_DAY0: 'H', //24小时制,一天中的小时数(0-23)  PATTERN_MINUTE: 'm', //小时中的分钟数  PATTERN_SECOND: 's', //秒  PATTERN_MILLISECOND: 'S', //毫秒  PATTERN_DAY_OF_WEEK: 'E', //一周中对应的星期,如星期一,周一  PATTERN_DAY_OF_YEAR: 'D', //一年中的第几天  PATTERN_DAY_OF_WEEK_IN_MONTH: 'F', //一月中的第几个星期(会把这个月总共过的天数除以7,不够准确,推荐用W)  PATTERN_WEEK_OF_YEAR: 'w', //一年中的第几个星期  PATTERN_WEEK_OF_MONTH: 'W', //一月中的第几星期(会根据实际情况来算)  PATTERN_AM_PM: 'a', //上下午标识  PATTERN_HOUR1: 'h', //12小时制 ,am/pm 中的小时数(1-12)  PATTERN_HOUR0: 'K', //和h类型  PATTERN_ZONE_NAME: 'z', //时区名  PATTERN_ZONE_VALUE: 'Z', //时区值  PATTERN_WEEK_YEAR: 'Y', //和y类型  PATTERN_ISO_DAY_OF_WEEK: 'u',  PATTERN_ISO_ZONE: 'X'  },  week: {  'ch': {  "0": "\u65e5",  "1": "\u4e00",  "2": "\u4e8c",  "3": "\u4e09",  "4": "\u56db",  "5": "\u4e94",  "6": "\u516d"  },  'en': {  "0": "Sunday",  "1": "Monday",  "2": "Tuesday",  "3": "Wednesday",  "4": "Thursday",  "5": "Friday",  "6": "Saturday"  }  },  //获取当前时间  getCurrentTime: function() {  var today = new Date();  var year = today.getFullYear();  var month = today.getMonth() + 1;  var day = today.getDate();  var hours = today.getHours();  var minutes = today.getMinutes();  var seconds = today.getSeconds();  var timeString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;  return timeString;  },  /* * 比较时间大小 * time1>time2 return 1 * time1<time2 return -1 * time1==time2 return 0 */  compareTime: function(time1, time2) {  if(Date.parse(time1.replace(/-/g, "/")) > Date.parse(time2.replace(/-/g, "/"))) {  return 1;  } else if(Date.parse(time1.replace(/-/g, "/")) < Date.parse(time2.replace(/-/g, "/"))) {  return -1;  } else if(Date.parse(time1.replace(/-/g, "/")) == Date.parse(time2.replace(/-/g, "/"))) {  return 0;  }  },  //是否闰年  isLeapYear: function(year) {  return((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);  },  //获取某个月的天数,从0开始  getDaysOfMonth: function(year, month) {  return [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];  },  getDaysOfMonth2: function(year, month) {  // 将天置为0,会获取其上个月的最后一天  month = parseInt(month) + 1;  var date = new Date(year, month, 0);  return date.getDate();  },  /*距离现在几天的日期:负数表示今天之前的日期,0表示今天,整数表示未来的日期 * 如-1表示昨天的日期,0表示今天,2表示后天 */  fromToday: function(days) {  var today = new Date();  today.setDate(today.getDate() + days);  var date = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate();  return date;  },  /** * 日期时间格式化 * @param {Object} dateTime 需要格式化的日期时间 * @param {String} pattern  格式化的模式,如yyyy-MM-dd hh(HH):mm:ss.S a k K E D F w W z Z */  formt: function(dateTime, pattern) {  var date = new Date(dateTime);  if(Bee.StringUtils.isBlank(pattern)) {  return date.toLocaleString();  }  return pattern.replace(/([a-z])\1*/ig, function(matchStr, group1) {  var replacement = "";  switch(group1) {  case Bee.DateUtils.patterns.PATTERN_ERA: //G  break;  case Bee.DateUtils.patterns.PATTERN_WEEK_YEAR: //Y  case Bee.DateUtils.patterns.PATTERN_YEAR: //y  replacement = date.getFullYear();  break;  case Bee.DateUtils.patterns.PATTERN_MONTH: //M  var month = date.getMonth() + 1;  replacement = (month < 10 && matchStr.length >= 2) ? "0" + month : month;  break;  case Bee.DateUtils.patterns.PATTERN_DAY_OF_MONTH: //d  var days = date.getDate();  replacement = (days < 10 && matchStr.length >= 2) ? "0" + days : days;  break;  case Bee.DateUtils.patterns.PATTERN_HOUR_OF_DAY1: //k(1~24)  var hours24 = date.getHours();  replacement = hours24;  break;  case Bee.DateUtils.patterns.PATTERN_HOUR_OF_DAY0: //H(0~23)  var hours24 = date.getHours();  replacement = (hours24 < 10 && matchStr.length >= 2) ? "0" + hours24 : hours24;  break;  case Bee.DateUtils.patterns.PATTERN_MINUTE: //m  var minutes = date.getMinutes();  replacement = (minutes < 10 && matchStr.length >= 2) ? "0" + minutes : minutes;  break;  case Bee.DateUtils.patterns.PATTERN_SECOND: //s  var seconds = date.getSeconds();  replacement = (seconds < 10 && matchStr.length >= 2) ? "0" + seconds : seconds;  break;  case Bee.DateUtils.patterns.PATTERN_MILLISECOND: //S  var milliSeconds = date.getMilliseconds();  replacement = milliSeconds;  break;  case Bee.DateUtils.patterns.PATTERN_DAY_OF_WEEK: //E  var day = date.getDay();  replacement = Bee.DateUtils.week['ch'][day];  break;  case Bee.DateUtils.patterns.PATTERN_DAY_OF_YEAR: //D  replacement = Bee.DateUtils.dayOfTheYear(date);  break;  case Bee.DateUtils.patterns.PATTERN_DAY_OF_WEEK_IN_MONTH: //F  var days = date.getDate();  replacement = Math.floor(days / 7);  break;  case Bee.DateUtils.patterns.PATTERN_WEEK_OF_YEAR: //w  var days = Bee.DateUtils.dayOfTheYear(date);  replacement = Math.ceil(days / 7);  break;  case Bee.DateUtils.patterns.PATTERN_WEEK_OF_MONTH: //W  var days = date.getDate();  replacement = Math.ceil(days / 7);  break;  case Bee.DateUtils.patterns.PATTERN_AM_PM: //a  var hours24 = date.getHours();  replacement = hours24 < 12 ? "\u4e0a\u5348" : "\u4e0b\u5348";  break;  case Bee.DateUtils.patterns.PATTERN_HOUR1: //h(1~12)  var hours12 = date.getHours() % 12 || 12; //0转为12  replacement = (hours12 < 10 && matchStr.length >= 2) ? "0" + hours12 : hours12;  break;  case Bee.DateUtils.patterns.PATTERN_HOUR0: //K(0~11)  var hours12 = date.getHours() % 12;  replacement = hours12;  break;  case Bee.DateUtils.patterns.PATTERN_ZONE_NAME: //z  replacement = Bee.DateUtils.getZoneNameValue(date)['name'];  break;  case Bee.DateUtils.patterns.PATTERN_ZONE_VALUE: //Z  replacement = Bee.DateUtils.getZoneNameValue(date)['value'];  break;  case Bee.DateUtils.patterns.PATTERN_ISO_DAY_OF_WEEK: //u  break;  case Bee.DateUtils.patterns.PATTERN_ISO_ZONE: //X  break;  default:  break;  }  return replacement;  });  },  /** * 计算一个日期是当年的第几天 * @param {Object} date */  dayOfTheYear: function(date) {  var obj = new Date(date);  var year = obj.getFullYear();  var month = obj.getMonth(); //从0开始  var days = obj.getDate();  var daysArr = [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];  for(var i = 0; i < month; i++) {  days += daysArr[i];  }  return days;  },  //获得时区名和值  getZoneNameValue: function(dateObj) {  var date = new Date(dateObj);  date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));  var arr = date.toString().match(/([A-Z]+)([-+]\d+:?\d+)/);  var obj = {  'name': arr[1],  'value': arr[2]  };  return obj;  }  },/******************************日期时间[datetime]类js***********************************//******************************数字[number]类js***********************************/numberUtils : {change_to_Chinese: function(Num) {//判断如果传递进来的不是字符的话转换为字符if (typeof Num == "number") {Num = new String(Num);};Num = Num.replace(/,/g, "") //替换tomoney()中的“,”Num = Num.replace(/ /g, "") //替换tomoney()中的空格Num = Num.replace(/¥/g, "") //替换掉可能出现的¥字符if (isNaN(Num)) { //验证输入的字符是否为数字//alert("请检查小写金额是否正确");return "";};//字符处理完毕后开始转换,采用前后两部分分别转换var part = String(Num).split(".");var newchar = "";//小数点前进行转化for (i = part[0].length - 1; i >= 0; i--) {if (part[0].length > 10) {return "";//若数量超过拾亿单位,提示}var tmpnewchar = ""var perchar = part[0].charAt(i);switch (perchar) {case "0":tmpnewchar = "零" + tmpnewchar;break;case "1":tmpnewchar = "壹" + tmpnewchar;break;case "2":tmpnewchar = "贰" + tmpnewchar;break;case "3":tmpnewchar = "叁" + tmpnewchar;break;case "4":tmpnewchar = "肆" + tmpnewchar;break;case "5":tmpnewchar = "伍" + tmpnewchar;break;case "6":tmpnewchar = "陆" + tmpnewchar;break;case "7":tmpnewchar = "柒" + tmpnewchar;break;case "8":tmpnewchar = "捌" + tmpnewchar;break;case "9":tmpnewchar = "玖" + tmpnewchar;break;}switch (part[0].length - i - 1) {case 0:tmpnewchar = tmpnewchar + "元";break;case 1:if (perchar != 0) tmpnewchar = tmpnewchar + "拾";break;case 2:if (perchar != 0) tmpnewchar = tmpnewchar + "佰";break;case 3:if (perchar != 0) tmpnewchar = tmpnewchar + "仟";break;case 4:tmpnewchar = tmpnewchar + "万";break;case 5:if (perchar != 0) tmpnewchar = tmpnewchar + "拾";break;case 6:if (perchar != 0) tmpnewchar = tmpnewchar + "佰";break;case 7:if (perchar != 0) tmpnewchar = tmpnewchar + "仟";break;case 8:tmpnewchar = tmpnewchar + "亿";break;case 9:tmpnewchar = tmpnewchar + "拾";break;}var newchar = tmpnewchar + newchar;}//小数点之后进行转化if (Num.indexOf(".") != -1) {if (part[1].length > 2) {// alert("小数点之后只能保留两位,系统将自动截断");part[1] = part[1].substr(0, 2)}for (i = 0; i < part[1].length; i++) {tmpnewchar = "";perchar = part[1].charAt(i); switch (perchar) {case "0":tmpnewchar = "零" + tmpnewchar;break;case "1":tmpnewchar = "壹" + tmpnewchar;break;case "2":tmpnewchar = "贰" + tmpnewchar;break;case "3":tmpnewchar = "叁" + tmpnewchar;break;case "4":tmpnewchar = "肆" + tmpnewchar;break;case "5":tmpnewchar = "伍" + tmpnewchar;break;case "6":tmpnewchar = "陆" + tmpnewchar;break;case "7":tmpnewchar = "柒" + tmpnewchar;break;case "8":tmpnewchar = "捌" + tmpnewchar;break;case "9":tmpnewchar = "玖" + tmpnewchar;break;}if (i == 0) tmpnewchar = tmpnewchar + "角";if (i == 1) tmpnewchar = tmpnewchar + "分";newchar = newchar + tmpnewchar;}}//替换所有无用汉字while (newchar.search("零零") != -1) newchar = newchar.replace("零零", "零");newchar = newchar.replace("零亿", "亿");newchar = newchar.replace("亿万", "亿");newchar = newchar.replace("零万", "万");newchar = newchar.replace("零元", "元");newchar = newchar.replace("零角", "");newchar = newchar.replace("零分", "");if (newchar.charAt(newchar.length - 1) == "元") {newchar = newchar + "整"}return newchar;},},    /******************************数字[number]类js***********************************//******************************字符串[string]类js***********************************/stringUtils : {/*** @title  字符串是空* @author lyj [author] [2018-05-23]* @param  {[type]}  input [description]* @return {Boolean}       [description]*/isEmpty: function(input) {return input == null || input == '';},isNotEmpty: function(input) {return !this.isEmpty(input);},isBlank: function(input) {return input == null || /^\s*$/.test(input);},isNotBlank: function(input) {return !this.isBlank(input);},trim: function(input) {return input.replace(/^\s+|\s+$/, '');},trimToEmpty: function(input) {return input == null ? "" : this.trim(input);},startsWith: function(input, prefix) {return input.indexOf(prefix) === 0;},endsWith: function(input, suffix) {return input.lastIndexOf(suffix) === 0;},contains: function(input, searchSeq) {return input.indexOf(searchSeq) >= 0;},equals: function(input1, input2) {return input1 == input2;},equalsIgnoreCase: function(input1, input2) {return input1.toLocaleLowerCase() == input2.toLocaleLowerCase();},containsWhitespace: function(input) {return this.contains(input, ' ');},//生成指定个数的字符repeat: function(ch, repeatTimes) {var result = "";for(var i = 0; i < repeatTimes; i++) {result += ch;}return result;},deleteWhitespace: function(input) {return input.replace(/\s+/g, '');},rightPad: function(input, size, padStr) {return input + this.repeat(padStr, size);},leftPad: function(input, size, padStr) {return this.repeat(padStr, size) + input;},//首小写字母转大写capitalize: function(input) {var strLen = 0;if(input == null || (strLen = input.length) == 0) {return input;}return input.replace(/^[a-z]/, function(matchStr) {return matchStr.toLocaleUpperCase();});},//首大写字母转小写uncapitalize: function(input) {var strLen = 0;if(input == null || (strLen = input.length) == 0) {return input;}return input.replace(/^[A-Z]/, function(matchStr) {return matchStr.toLocaleLowerCase();});},//大写转小写,小写转大写swapCase: function(input) {return input.replace(/[a-z]/ig, function(matchStr) {if(matchStr >= 'A' && matchStr <= 'Z') {return matchStr.toLocaleLowerCase();} else if(matchStr >= 'a' && matchStr <= 'z') {return matchStr.toLocaleUpperCase();}});},//统计含有的子字符串的个数countMatches: function(input, sub) {if(this.isEmpty(input) || this.isEmpty(sub)) {return 0;}var count = 0;var index = 0;while((index = input.indexOf(sub, index)) != -1) {index += sub.length;count++;}return count;},//只包含字母isAlpha: function(input) {return /^[a-z]+$/i.test(input);},//只包含字母、空格isAlphaSpace: function(input) {return /^[a-z\s]*$/i.test(input);},//只包含字母、数字isAlphanumeric: function(input) {return /^[a-z0-9]+$/i.test(input);},//只包含字母、数字和空格isAlphanumericSpace: function(input) {return /^[a-z0-9\s]*$/i.test(input);},//数字isNumeric: function(input) {return /^(?:[1-9]\d*|0)(?:\.\d+)?$/.test(input);},//小数isDecimal: function(input) {return /^[-+]?(?:0|[1-9]\d*)\.\d+$/.test(input);},//负小数isNegativeDecimal: function(input) {return /^\-?(?:0|[1-9]\d*)\.\d+$/.test(input);},//正小数isPositiveDecimal: function(input) {return /^\+?(?:0|[1-9]\d*)\.\d+$/.test(input);},//整数isInteger: function(input) {return /^[-+]?(?:0|[1-9]\d*)$/.test(input);},//正整数isPositiveInteger: function(input) {return /^\+?(?:0|[1-9]\d*)$/.test(input);},//负整数isNegativeInteger: function(input) {return /^\-?(?:0|[1-9]\d*)$/.test(input);},//只包含数字和空格isNumericSpace: function(input) {return /^[\d\s]*$/.test(input);},isWhitespace: function(input) {return /^\s*$/.test(input);},isAllLowerCase: function(input) {return /^[a-z]+$/.test(input);},isAllUpperCase: function(input) {return /^[A-Z]+$/.test(input);},defaultString: function(input, defaultStr) {return input == null ? defaultStr : input;},defaultIfBlank: function(input, defaultStr) {return this.isBlank(input) ? defaultStr : input;},defaultIfEmpty: function(input, defaultStr) {return this.isEmpty(input) ? defaultStr : input;},//字符串反转reverse: function(input) {if(this.isBlank(input)) {input;}return input.split("").reverse().join("");},//删掉特殊字符(英文状态下)removeSpecialCharacter: function(input) {return input.replace(/[!-/:-@\[-`{-~]/g, "");},//只包含特殊字符、数字和字母(不包括空格,若想包括空格,改为[ -~])isSpecialCharacterAlphanumeric: function(input) {return /^[!-~]+$/.test(input);},/*** 校验时排除某些字符串,即不能包含某些字符串* @param {Object} conditions:里面有多个属性,如下:* * @param {String} matcherFlag 匹配标识* 0:数字;1:字母;2:小写字母;3:大写字母;4:特殊字符,指英文状态下的标点符号及括号等;5:中文;* 6:数字和字母;7:数字和小写字母;8:数字和大写字母;9:数字、字母和特殊字符;10:数字和中文;* 11:小写字母和特殊字符;12:大写字母和特殊字符;13:字母和特殊字符;14:小写字母和中文;15:大写字母和中文;* 16:字母和中文;17:特殊字符、和中文;18:特殊字符、字母和中文;19:特殊字符、小写字母和中文;20:特殊字符、大写字母和中文;* 100:所有字符;* @param {Array} excludeStrArr 排除的字符串,数组格式* @param {String} length 长度,可为空。1,2表示长度1到2之间;10,表示10个以上字符;5表示长度为5* @param {Boolean} ignoreCase 是否忽略大小写* conditions={matcherFlag:"0",excludeStrArr:[],length:"",ignoreCase:true}*/isPatternMustExcludeSomeStr: function(input, conditions) {//参数var matcherFlag = conditions.matcherFlag;var excludeStrArr = conditions.excludeStrArr;var length = conditions.length;var ignoreCase = conditions.ignoreCase;//拼正则var size = excludeStrArr.length;var regex = (size == 0) ? "^" : "^(?!.*(?:{0}))";var subPattern = "";for(var i = 0; i < size; i++) {excludeStrArr[i] = Bee.StringUtils.escapeMetacharacterOfStr(excludeStrArr[i]);subPattern += excludeStrArr[i];if(i != size - 1) {subPattern += "|";}}regex = this.format(regex, [subPattern]);switch(matcherFlag) {case '0':regex += "\\d";break;case '1':regex += "[a-zA-Z]";break;case '2':regex += "[a-z]";break;case '3':regex += "[A-Z]";break;case '4':regex += "[!-/:-@\[-`{-~]";break;case '5':regex += "[\u4E00-\u9FA5]";break;case '6':regex += "[a-zA-Z0-9]";break;case '7':regex += "[a-z0-9]";break;case '8':regex += "[A-Z0-9]";break;case '9':regex += "[!-~]";break;case '10':regex += "[0-9\u4E00-\u9FA5]";break;case '11':regex += "[a-z!-/:-@\[-`{-~]";break;case '12':regex += "[A-Z!-/:-@\[-`{-~]";break;case '13':regex += "[a-zA-Z!-/:-@\[-`{-~]";break;case '14':regex += "[a-z\u4E00-\u9FA5]";break;case '15':regex += "[A-Z\u4E00-\u9FA5]";break;case '16':regex += "[a-zA-Z\u4E00-\u9FA5]";break;case '17':regex += "[\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '18':regex += "[\u4E00-\u9FA5!-~]";break;case '19':regex += "[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '20':regex += "[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '100':regex += "[\s\S]";break;default:alert(matcherFlag + ":This type is not supported!");}regex += this.isNotBlank(length) ? "{" + length + "}" : "+";regex += "$";var pattern = new RegExp(regex, ignoreCase ? "i" : "");return pattern.test(input);},/*** @param {String} message* @param {Array} arr* 消息格式化*/format: function(message, arr) {return message.replace(/{(\d+)}/g, function(matchStr, group1) {return arr[group1];});},/*** 把连续出现多次的字母字符串进行压缩。如输入:aaabbbbcccccd  输出:3a4b5cd* @param {String} input* @param {Boolean} ignoreCase : true or false */compressRepeatedStr: function(input, ignoreCase) {var pattern = new RegExp("([a-z])\\1+", ignoreCase ? "ig" : "g");return result = input.replace(pattern, function(matchStr, group1) {return matchStr.length + group1;});},/*** 校验必须同时包含某些字符串* @param {String} input* @param {Object} conditions:里面有多个属性,如下:* * @param {String} matcherFlag 匹配标识* 0:数字;1:字母;2:小写字母;3:大写字母;4:特殊字符,指英文状态下的标点符号及括号等;5:中文;* 6:数字和字母;7:数字和小写字母;8:数字和大写字母;9:数字、字母和特殊字符;10:数字和中文;* 11:小写字母和特殊字符;12:大写字母和特殊字符;13:字母和特殊字符;14:小写字母和中文;15:大写字母和中文;* 16:字母和中文;17:特殊字符、和中文;18:特殊字符、字母和中文;19:特殊字符、小写字母和中文;20:特殊字符、大写字母和中文;* 100:所有字符;* @param {Array} excludeStrArr 排除的字符串,数组格式* @param {String} length 长度,可为空。1,2表示长度1到2之间;10,表示10个以上字符;5表示长度为5* @param {Boolean} ignoreCase 是否忽略大小写* conditions={matcherFlag:"0",containStrArr:[],length:"",ignoreCase:true}* */isPatternMustContainSomeStr: function(input, conditions) {//参数var matcherFlag = conditions.matcherFlag;var containStrArr = conditions.containStrArr;var length = conditions.length;var ignoreCase = conditions.ignoreCase;//创建正则var size = containStrArr.length;var regex = "^";var subPattern = "";for(var i = 0; i < size; i++) {containStrArr[i] = Bee.StringUtils.escapeMetacharacterOfStr(containStrArr[i]);subPattern += "(?=.*" + containStrArr[i] + ")";}regex += subPattern;switch(matcherFlag) {case '0':regex += "\\d";break;case '1':regex += "[a-zA-Z]";break;case '2':regex += "[a-z]";break;case '3':regex += "[A-Z]";break;case '4':regex += "[!-/:-@\[-`{-~]";break;case '5':regex += "[\u4E00-\u9FA5]";break;case '6':regex += "[a-zA-Z0-9]";break;case '7':regex += "[a-z0-9]";break;case '8':regex += "[A-Z0-9]";break;case '9':regex += "[!-~]";break;case '10':regex += "[0-9\u4E00-\u9FA5]";break;case '11':regex += "[a-z!-/:-@\[-`{-~]";break;case '12':regex += "[A-Z!-/:-@\[-`{-~]";break;case '13':regex += "[a-zA-Z!-/:-@\[-`{-~]";break;case '14':regex += "[a-z\u4E00-\u9FA5]";break;case '15':regex += "[A-Z\u4E00-\u9FA5]";break;case '16':regex += "[a-zA-Z\u4E00-\u9FA5]";break;case '17':regex += "[\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '18':regex += "[\u4E00-\u9FA5!-~]";break;case '19':regex += "[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '20':regex += "[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '100':regex += "[\s\S]";break;default:alert(matcherFlag + ":This type is not supported!");}regex += this.isNotBlank(length) ? "{" + length + "}" : "+";regex += "$";var pattern = new RegExp(regex, ignoreCase ? "i" : "");return pattern.test(input);},//中文校验isChinese: function(input) {return /^[\u4E00-\u9FA5]+$/.test(input);},//去掉中文字符removeChinese: function(input) {return input.replace(/[\u4E00-\u9FA5]+/gm, "");},//转义元字符escapeMetacharacter: function(input) {var metacharacter = "^$()*+.[]|\\-?{}|";if(metacharacter.indexOf(input) >= 0) {input = "\\" + input;}return input;},//转义字符串中的元字符escapeMetacharacterOfStr: function(input) {return input.replace(/[\^\$\(\)\*\+\.\[\]\|\\\-\?\{\}\|]/gm, "\\$&");}},/******************************字符串[string]类js***********************************//******************************加密算法[encryption]类js***********************************/encryptionUtils : {urlEncode : function(str){if (str == null || str == "") return "";var newStr = "";function toCase(sStr) {return sStr.toString(16).toUpperCase();}for (var i = 0,icode, len = str.length; i < len; i++) {icode = str.charCodeAt(i);if (icode < 0x10) newStr += "%0" + icode.toString(16).toUpperCase();else if (icode < 0x80) {if (icode == 0x20) newStr += "+";else if ((icode >= 0x30 && icode <= 0x39) || (icode >= 0x41 && icode <= 0x5A) || (icode >= 0x61 && icode <= 0x7A)) newStr += str.charAt(i);else newStr += "%" + toCase(icode);} else if (icode < 0x800) {newStr += "%" + toCase(0xC0 + (icode >> 6));newStr += "%" + toCase(0x80 + icode % 0x40);} else {newStr += "%" + toCase(0xE0 + (icode >> 12));newStr += "%" + toCase(0x80 + (icode >> 6) % 0x40);newStr += "%" + toCase(0x80 + icode % 0x40);}}return newStr;},},}// 返回可以暴露的内部成员return tools;})(window, document, $);// console.log(lyj);

转载于:https://www.cnblogs.com/liliyi/p/9252999.html

lyjutils.js javascript 工具类相关推荐

  1. JS WebSocket工具类

    WebSocket工具类 WebSocket工具类 WebSocket工具类 var currentDomain = window.location.host; var urlDomain = 'ws ...

  2. 简化前端开发的javascript工具类收集

    在此文中,非常有用的JavaScript库,来帮助你简化前端开发. Moment.js 修改和展示日期,能轻易地应用到Web应用中.例如,如果要显示15天前的日期 moment().subtract( ...

  3. javascript工具类(util)-持续更新

    2019独角兽企业重金招聘Python工程师标准>>> 同步更新github,并含有测试用例. 地址 https://github.com/bosscheng/javascript- ...

  4. JavaScript常用工具类整理(总结版)

    导读:在前端开发过程中需要对常用的功能模块进行封装,常用的方法多次调用需要整合,保证组件的复用性与程序的可维护性,这里总结一下,便于后续的使用! 目录 1.全局声明工具类 2.定时器 3.判断变量是否 ...

  5. javascript常用工具类的封装

    目录 一.js数组工具类 工具类方法 工具类代码 测试MyArrayFn中的所有方法 二.js字符串校验工具类 工具类方法 工具类代码 三.js时间Date工具类 工具类方法 工具类代码 四.js浏览 ...

  6. 微信小程序 - 时间转换工具类timeUtils

    GitHub Demo 地址: jh-weapp-demo 实现一些常用效果.封装通用组件和工具类 代码不定时更新,请前往github查看最新代码 小程序码 使用方法: const TimeUtils ...

  7. 使用JCrop进行图片裁剪,裁剪js说明,裁剪预览,裁剪上传,裁剪设计的图片处理的工具类和代码

     1.要想制作图片裁剪功能,可以使用网上的裁剪工具JCrop,网址是:https://github.com/tapmodo/Jcrop/ 案例效果如下: 2.引入JCrop的js代码,具体要引入那 ...

  8. Cookie工具类-cookieUtil.js

    重写Cookie工具类,可以在edit.jsp中引入,在引入的其他js中直接用. 在edit.jsp中引入 <script type="text/javascript" sr ...

  9. [Day.js] 工具类Day.js 的基本使用

    工具类Day.js 的基本使用 一.Day.js 简介 二.使用方式 三.常见用法 1. 获取当前时间戳 2. 格式化时间 3. 指定日期 一.Day.js 简介 与Moment.js 一样,Day. ...

最新文章

  1. 2020-11-13size_t和int
  2. JavaSE入门学习51:多线程编程(二)
  3. 【NodeJS】运行在服务端的JavaScript
  4. Fragment重影(重叠)白屏等问题原理解析,以及解决方案
  5. php myadmin utf,phpmyadmin在哪里设置utf_8
  6. web farm 讨论引出
  7. 洛谷P1396 营救 题解
  8. 车纷享:基于阿里云HBase构建车联网平台实践
  9. POJ 3422 费用流
  10. spring 锁_分布式锁-快速实战
  11. 谷歌死磕亚马逊,CES 舞台上的语音入口争夺战
  12. 常用的正则表达式-收藏版
  13. 【单片机】51单片机烧录那些事儿
  14. IP is locked 的解决办法 Vivado
  15. error C2678
  16. 【MySQL】九、数据排序(升序 order by ... asc,降序 desc),sql语句的执行顺序
  17. 开发一个Canvas小游戏 实现一个游戏“引擎”
  18. 股市学习稳扎稳打(一)认识市场上的各路游资
  19. c语言输出十六进制数乱码,输出乱码
  20. Mysql优化,是什么,如何优化(一)

热门文章

  1. 一个计算机系研究生毕业以后的人生规划
  2. 敬业乐群,笑谈人生!
  3. 华为u8860手机 android4.0 轻松root
  4. 多渔:聊聊自媒体和流量变现
  5. 为什么我说你不爱我了!
  6. html+css3基础知识部分详记
  7. linux 端口数 句柄数,linux文件句柄数
  8. Redis(3)--哨兵模式,集群
  9. Matlab预测人口
  10. 有一门课不及格的学生