UNPKG

zoomla

Version:

16年专业研发|中文alexa排名第一的CMS品牌-基于dotNET core、功能强大,集成站群、微信开发、小程序与ERP及OA办公系统,支持国际语言和多民族语言,世界五百强与大型门户专用高端网站内核CMS系统

297 lines (288 loc) 11 kB
var ZL_Regex = { isMinLen: function (str, len) {//字符长度是否小于len str = str.replace(/ /g, ""); return str.length < len; }, isEmpty: function () { for (var i = 0; i < arguments.length; i++) { if (!arguments[i] || arguments[i] == undefined || (arguments[i] + "") == "NaN") { return true; }//传入为undefined也为false var s = arguments[i].replace(/ /g, ""); if (s == "") return true; } return false; }, //是否为pop或smtp地址 isPop: function (s) { var patrn = /^(\w+)\.(\w+)\.(\w+)/g; return patrn.exec(s) ? true : false; }, //是否包含中文 isContainChina: function (s) { var patrn = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi; if (patrn.exec(s)) return true; else return false; }, //是否只有英文与数字 isEngorNum: function (s) { var patrn = /^[A-Za-z0-9]*$/; return patrn.exec(s) ? true : false; }, //是否为英文,数字或中文(不允许空格) isCharorNum: function (s) { var patrn = /^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[\w])*$/; return patrn.exec(s) ? true : false; }, //是否为c#格式虚拟路径 isVirtualPath: function (s) { return (s.indexOf("~/") == 0 && s.indexOf(".") > 0); }, //验证http||https格式 isUrl:function(s) { var patrn = /^((http)|(https)):\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/i; return patrn.exec(s) ? true : false; }, //邮箱格式验证 isEmail: function (s) { var patrn = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/gi; return patrn.exec(s)?true:false; }, //是否为身份证 isIDCard: function (s) { var patrn = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/; return patrn.exec(s); }, //是否手机号码 isMobilePhone:function(s){ var patrn = /^1(?:3|4|5|6|7|8)\d{9}$/; var patrn2 = /0\d{2,5}-\d{5,8}/g;//座机 if (patrn.exec(s)||patrn2.exec(s)) { return true; } else { return false; } }, //是否邮编 isZipCode: function (s) { s = $.trim(s); return(ZL_Regex.isInt(s) && s.length == 6) }, isIP: function (s) { var patrn = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g; return patrn.exec(s) ? true : false; }, //是否正或负整数 isInt: function (s) { var patrn = /^\d+(\d+)?$/gi; if (patrn.exec(s)) { return true; } else { return false; } }, //是否正浮点数或正整数,0也算,true:是 isNum: function () { for (var i = 0; i < arguments.length; i++) { var val = parseFloat(arguments[i]); if (!(val >= 0)) { return false; } } return true; }, //后缀名检测,符合返回true 文件名, mp3,mp4,swf extCheck: function (fname, exts) { if (!fname || fname == "" || !exts || exts == "") { return false; } var ext = StrHelper.getExt(fname); var extArr = exts.toLowerCase().split(','); if (ext == "" || extArr.length < 1) { return false; } for (var i = 0; i < extArr.length; i++) { if (ext == extArr[i]) { return true; } } return false; }, domIsEng: function (s) { //---域名注册使用 //---允许英文,数字,空格,不能有中文,英文中一定要带空格,注:传入的值用trim();,用于单位(英文名)等地方 var patrn = /[^a-zA-Z0-9\s]+/gi; if (!patrn.exec(s)) { i = s.toString().indexOf(" "); return i > 0; } else { return false; } }, //---------------文本框块 //只允许输入正整数 B_Num: function (filter) { $(filter).bind("keyup afterpaste", function (e) { if (ZL_Regex._isIgnKey(e)) { } this.value = this.value.replace(/\D/g, ''); }) }, //允许小数位,允许两位 B_Float: function (filter) { $(filter).bind("keyup afterpaste", function (e) { if (ZL_Regex._isIgnKey(e)) { } this.value = this.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 this.value = this.value.replace(/^\./g, ""); //验证第一个字符是数字而不是. this.value = this.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的. this.value = this.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); this.value = this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数 }) }, //设定最大和最小值 B_Value: function (filter, config) { //config = { min: 0, max: 200, overmin: function () { }, overmax: function () { }} var events = "keyup afterpaste"; if (config.events) { events = config.events; } $(filter).bind(events, function (e) { if (ZL_Regex._isIgnKey(e)) { } var val = parseFloat($(this).val()); if (val > config.max) { $(this).val(config.max); if (config.overmax) { $(this).blur(); config.overmax(); } } if (val < config.min) { $(this).val(config.min); if (config.overmin) { $(this).blur(); config.overmin(); } } }) }, //只允许输入英文 B_English: function (filter) { $(filter).bind("keyup afterpaste", function (e) { if (ZL_Regex._isIgnKey(e)) { } this.value = this.value.replace(/[^a-z]+/gi, "");///[^a-z0-9]+/gi }); }, //英文和数字 B_EngAndNum: function (filter) { $(filter).bind("keyup afterpaste", function (e) { if (ZL_Regex._isIgnKey(e)) { } this.value = this.value.replace(/[^a-z0-9]+/gi, ""); }); }, _isIgnKey: function (e) { //方向键,删除,回车和其他特殊按钮忽略 var ignKey = [37, 38, 39, 40, 13, 20, 16, 17, 18, 8]; for (var i = 0; i < ignKey.length; i++) { if (e.keyCode == ignKey[i]) { return true; } } return false; }, //---------------取值 } //------------------------------ var Convert = {}; Convert.ToInt = function (str, def) { if (!def) { def = 0; } var r = parseInt(str); if ((r + "") == "NaN") { r = def; } return r; } //num=小数位 Convert.ToDouble = function (str, num, def) { if (!def) { def = 0; } if (!num) { num = 2; } var r = parseFloat(str); if ((r + "") == "NaN") { r = def; } return parseFloat(r.toFixed(num)); } //格式化时间 Convert.ToDate = function (str) { str = str.split('.')[0]; str = str.replace("T", " "); return str; } //------------------------------ var StrHelper = {}; //如未前带http,则补上 StrHelper.UrlDeal = function (url) { if (!url || url == "") { return ""; } url = url.toLowerCase(); if (url.indexOf("http:") > -1 || url.indexOf("https:") > -1) { } else { url = "http://" + url; } return url; } //去除http等网址前缀 StrHelper.getUrlVPath = function (url) { if (!url || url == "") { return ""; } //不需要处理 if (url.indexOf("://") < 1) { return url; } url = url.replace("://", ""); url = url.substr(url.indexOf("/"),url.length-url.indexOf("/")); return url; } //获取指定长度的字符串,区分中英文 StrHelper.getSubStr = function (s, l) { var i = 0, len = 0; for (i; i < s.length; i++) { if (s.charAt(i).match(/[^\x00-\xff]/g) != null) { len += 2; } else { len++; } if (len > l) { break; } } var r = s.substr(0, i); r += i > s.length ? "..." : ""; return r; }; StrHelper.getExt = function (str) { if (!str || str.indexOf(".") < 0) { return ""; } str = str.replace(/ /g, ""); var sindex = str.lastIndexOf(".") + 1; return str.substring(sindex, str.length).toLowerCase(); } StrHelper.trim = function (str, char) { if (ZL_Regex.isEmpty(str)) { return ""; } if (!char) { char = ","; } str = $.trim(str); if (str.indexOf(char) == 0) { str = str.substr(1, str.length); } if (str.lastIndexOf(char) == (str.length - 1)) { str = str.substr(0, (str.length - 1)); } return str; } //str = StrHelper.replace(str, "\\[3\\]", "dd"); StrHelper.replace = function (str, t1, t2) { if (!str) { return ""; } return str.replace(RegExp(t1, "g"), t2); } //正则表达式使用变量var eval("/"+ch+"/ig"); var HtmlUtil = { /*1.用浏览器内部转换器实现html转码*/ htmlEncode: function (html) { if (ZL_Regex.isEmpty(text)) { return ""; } //1.首先动态创建一个容器标签元素,如DIV var temp = document.createElement("div"); //2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持) (temp.textContent != undefined) ? (temp.textContent = html) : (temp.innerText = html); //3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了 var output = temp.innerHTML; temp = null; return output; }, /*2.用浏览器内部转换器实现html解码*/ htmlDecode: function (text) { if (ZL_Regex.isEmpty(text)) { return ""; } //1.首先动态创建一个容器标签元素,如DIV var temp = document.createElement("div"); //2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持) temp.innerHTML = text; //3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。 var output = temp.innerText || temp.textContent; temp = null; return output; }, //去除文本中的根域名 removeUrlRoot: function (text) { text = text.replace(/(http|ftp|https):[\/]{2}[a-z\d]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]/ig, "/"); text = text.replace(/(http|ftp|https):[\/]{2}[a-z\d]+[.]{1}[a-z\d]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]/ig, "/"); text = text.replace(/(http|ftp|https):[\/]{2}[a-z\d]+[:]{1}[\d]*[\/]/ig, "/"); //text = text.replace(/(http|ftp|https):[\/]{2}[a-z\d]*[.](com|cn)/ig, ""); //https://raysandsigns.com/ 需要处理 return text; //test("http://x044.2013.hx008.com/UploadFiles/nopic.svg"); } }; //var patrn = /^([0-9]|[\+]|[\-]){6,20}$/;