java js常用正则表达式和工具函数

    xiaoxiao2021-03-25  98

    ###一. java常用工具函数 1.1 日期函数

    //计算的是两者的相差天数 结果为非负整数 public static int getWorkingDaysBetweenTwoDates(Date startDate, Date endDate) { Calendar startCal; Calendar endCal; startCal = Calendar.getInstance(); startCal.setTime(startDate); endCal = Calendar.getInstance(); endCal.setTime(endDate); int workDays = 0; // Return 0 if start and end are the same if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) { return 0; } if (startCal.getTimeInMillis() > endCal.getTimeInMillis()) { startCal.setTime(endDate); endCal.setTime(startDate); } do { startCal.add(Calendar.DAY_OF_MONTH, 1); if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) { ++workDays; } } while (startCal.getTimeInMillis() < endCal.getTimeInMillis()); return workDays; } //按照指定格式获取当前日期字符串 public static String getCurrentDate(String format) { // TODO Auto-generated method stub Date date = new Date(); return dateToString(date,format); } //将指定日期转换为字符串 private static String dateToString(Date date, String format) { // TODO Auto-generated method stub if(ClassUtil.isNull(format)){ format = "yyyy-MM-dd"; } String newDate = ""; SimpleDateFormat sdf = new SimpleDateFormat(format); try { if (date != null) { newDate = sdf.format(date); } } catch (Exception e) { logger.error(e.getMessage(), e); } return newDate; } //获取当前日期时间字符串 public static String getCurrentDateTimeStr(){ SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); Date dd = new Date(); String str = format.format(dd); return str; } //20170901 add 获取当前季度 public static String getCurrentQuarter(){ Calendar currentCal = Calendar.getInstance(); //currentCal.add(Calendar.MONTH,1); Integer year = currentCal.get(Calendar.YEAR); Integer month = currentCal.get(Calendar.MONTH); //当前月份减一 //System.out.println("year: " + year + "; month: " + month); String quarter = ""; if(year.toString().length() == 4){ quarter = year.toString().substring(2, 4); } if(month >= 0 && month < 3){ quarter += "Q1"; }else if(month >= 3 && month < 6){ quarter += "Q2"; }else if(month >= 6 && month < 9){ quarter += "Q3"; }else if(month >= 9 && month < 12){ quarter += "Q4"; } //System.out.println("quarter: " + quarter); return quarter ; }

    1.2 工具函数

    public class ClassUtil { /** * 输出对象的所有属性值 * */ public static String toString(Object obj){ String s = ""; try { s = getPropertyString(obj); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return s; } public static String getPropertyString(Object entityName) throws Exception { Class<? extends Object> c = entityName.getClass(); Field field [] = c.getDeclaredFields(); StringBuffer sb = new StringBuffer(); sb.append("------ " + " begin ------\n"); for(Field f : field){ sb.append(f.getName()); sb.append(" : "); sb.append(invokeMethod(entityName, f.getName(), null)); sb.append("\n"); } sb.append("------ " + " end ------\n"); return sb.toString(); } public static Object invokeMethod(Object owner, String methodName, Object[] args) throws Exception{ Class<? extends Object> ownerClass = owner.getClass(); methodName = methodName.substring(0, 1).toUpperCase() + methodName.substring(1); Method method = null; try { method = ownerClass.getMethod("get" + methodName); } catch (SecurityException e) { // TODO Auto-generated catch block //e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block //e.printStackTrace(); return " can't find 'get" + methodName + "' method"; } return method.invoke(owner); } //从url地址中获取文件名 public static String getFileNameFromUrl(String fileUrl) { String fileName = ""; if(!ClassUtil.isNull(fileUrl)){ Integer index = fileUrl.lastIndexOf("/"); if(index>-1){ fileName = fileUrl.substring(index+1); } } return fileName; } //若获取的变量为null 则返回空字符串 public static String dealStrWithNull(String str){ return (str == null? "":str); } //将文件url地址中的文件名进行编码后 以防文件名中存在加号等特殊符号 导致附件无法下载 public static String encodeFileNameForUrl(String fileUrl) throws UnsupportedEncodingException{ String fileName = ""; if(!ClassUtil.isNull(fileUrl)){ Integer index = fileUrl.lastIndexOf("/"); if(index>-1){ String urlPrefix = fileUrl.substring(0,index+1); fileName = fileUrl.substring(index+1); fileName = URLEncoder.encode(fileName,"UTF-8"); fileUrl = urlPrefix + fileName; } } return fileUrl; } //对文件url中的文件名进行utf-8解码 以防文件名中存在加号等特殊符号 导致附件无法下载 public static String decodeFileNameForUrl(String fileUrl) throws UnsupportedEncodingException{ String fileName = ""; if(!ClassUtil.isNull(fileUrl)){ Integer index = fileUrl.lastIndexOf("/"); if(index>-1){ String urlPrefix = fileUrl.substring(0,index+1); fileName = fileUrl.substring(index+1); fileName = URLDecoder.decode(fileName,"UTF-8"); fileUrl = urlPrefix + fileName; } } return fileUrl; } //去掉字符串中的制表符 换行符 空格 暂时未使用 public static String replaceBlank(String str) { String dest = ""; if (str!=null) { Pattern p = Pattern.compile("\\s*|\t|\r|\n"); Matcher m = p.matcher(str); dest = m.replaceAll(""); } return dest; } // 判断一个字符是否是中文 public static boolean isChineseChar(char c) { return c >= 0x4E00 && c <= 0x9FA5;// 根据字节码判断 } //针对数据库varchar类型 计算字符串长度:中文字符数*2 + 英文字符数<= 数据库字段设定长度 // 判断一个字符串是否含有中文 public static Integer getDBStrLength(String str) { Integer len = 0; if(str != null && str.length()>0){ char[] arr = str.toCharArray(); for(int i=0; i<arr.length; i++){ if(isChineseChar(arr[i])){ len += 2; }else{ len += 1; } }//for } return len; } //根据字符串长度以及长度限制 对字符串进行截断处理 public static String getTruncateStrByMaxLength(String str,Integer maxLen) { String result = ""; Integer len = 0; if(str != null && str.length()>0){ char[] arr = str.toCharArray(); for(int i=0; i<arr.length; i++){ if(isChineseChar(arr[i])){ len += 2; }else{ len += 1; } if(len <= maxLen){ result += arr[i]; }else{ break; } }//for } return result; } //针对字段内容中含有逗号的字符串 双引号内的逗号不分割 双引号外的逗号进行分割 public static String[] splitStrWithComma(String str){ String[] strArr = str.trim().split(",(?=([^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)",-1); //双引号内的逗号不分割 双引号外的逗号进行分割 return strArr; } //读取props.properties public static void main(String[] args) throws UnsupportedEncodingException{ /*ResourceBundle rb = ResourceBundle.getBundle("props.properties"); String temp = rb.getString("ATTACHMENT_SIZE"); System.out.println("temp: " + temp);*/ //trim() 可去掉字符串前后的换行符和空格 System.out.println(new String("just do it!\n").trim()); System.out.println("aaa"); String str = "aa \n bb \n cc "; str = str.trim().replace("\n", ""); System.out.println("str: " + str + "; str length: " + str.split(";").length); System.out.println("aaa"); } }

    1.3cookie操作

    public class CookieUtil { //20170807 add 根据获取cookie名 获取cookie值 public static String getCookieValueByName(HttpServletRequest request, String cookieName){ Cookie[] cookieArr= request.getCookies(); //logger.info("cookieArr length: " + cookieArr.length); if(cookieArr == null){ return ""; } String cookie_value = ""; for(int i=0; i<cookieArr.length; i++){ if(cookieArr[i].getName().equals(cookieName)){ cookie_value = cookieArr[i].getValue(); break; } } return cookie_value; } }

    ###二. js 2.1 正则表达式 2.1.1 整数或者小数

    //整数或者两位以内的小数 if(!((/^\d+(\.\d{1,2})?$/).test(inputValue) )){ alert("输入应为整数或者两位以内的小数"); return false; } //只能是非负整数或者只有一位小数 var reg = /^[0-9]\d*([.][0-9])?$/; if(!reg.test(work_hour)){ g_validFlag = 0; alert("只能是非负整数或小数点后一位的非负小数"); return; }

    2.1.2 是否为非负整数

    //是否为非负整数 function isDigital(ele){ return(/^[0-9]+$/.test(ele)); } //判断是否是非负数 function notNegativeNumber(value){ if(/^\d+(\.\d+)?$/.test(value)){ return true; } return false; }

    2.1.3 判断是否为数字以及浮点运算

    //判断输入是否是整数 function isDigital(str){ if(/^\d+$/.test(str)){ return true; } return false; } //20160711 单纯的浮点数相乘会出现 0.29*100 = 0.289999996...的情况 function accMul(num1,num2){ var m=0,s1=num1.toString(),s2=num2.toString(); try{m+=s1.split(".")[1].length}catch(e){}; try{m+=s2.split(".")[1].length}catch(e){}; return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m); }

    2.1.4 校验密码强度

    //20170822 add 检验密码强度 8位以下纯数字、纯字母密码为弱密码 function checkPasswordStrength(password){ var reg1 = new RegExp(/^[0-9]{1,7}$/); var reg2 = new RegExp(/^[A-Za-z]{1,7}$/); //alert(reg1.test(password)); //alert(reg2.test(password)); if(reg1.test(password) || reg2.test(password)){ return false; }else{ return true; } }

    2.2 数组排序 对象数组排序,如果name对应值相同,则按minor进行排序

    var by = function(name,minor){ return function(o,p){ var a,b; if(o && p && typeof o === 'object' && typeof p ==='object'){ a = o[name]; b = p[name]; if(a === b){ return typeof minor === 'function' ? minor(o,p):0; } if(typeof a === typeof b){ return a < b ? -1:1; } return typeof a < typeof b ? -1 : 1; }else{ thro("error"); } } } employees.sort(by('age',by('name')));

    2.3 重载函数

    if(!(Array.prototype.indexOf)) { Array.prototype.indexOf = function (value) { for (var i = 0; i < this.length; i++) { if (this[i] == value) return i; } return -1; }; } if(!(String.prototype.trim)) { String.prototype.trim = function () { if (this != undefined) { return this.replace(/(^\s*)|(\s*$)/g, ''); } else { return ""; } }; } Date.prototype.format = function(format) { var date = { "M+": this.getMonth() + 1, "d+": this.getDate(), "h+": this.getHours(), "m+": this.getMinutes(), "s+": this.getSeconds(), "q+": Math.floor((this.getMonth() + 3) / 3), "S+": this.getMilliseconds() }; if (/(y+)/i.test(format)) { format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length)); } for (var k in date) { if (new RegExp("(" + k + ")").test(format)) { format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length)); } } return format; };

    2.4 其他函数

    //将所有按钮置为无效 function disableAllButtons(){ var btns = document.getElementsByTagName("button"); for(var i=0;i<btns.length;i++){ btns[i].disabled = true; } } function enableAllButtons(){ var btns = document.getElementsByTagName("button"); for(var i=0;i<btns.length;i++){ btns[i].disabled = ""; } } /将容器(jquery对象)的滑动条滑至类名为className的第index个条目 function scrollToLocation(mainContainer,className,index) { var scrollToContainer = mainContainer.find('.'+ className + ':eq(' + index + ')'); console.log(scrollToContainer); //scrollToContainer = mainContainer.find('.son-panel:eq(5)');//滚动到<div id="thisMainPanel">中类名为son-panel的第六个处 :last 最后一个 //非动画效果 //mainContainer.scrollTop( // scrollToContainer.offset().top - mainContainer.offset().top + mainContainer.scrollTop() //); var finalScrollTop = scrollToContainer.offset().top - mainContainer.offset().top-100 + mainContainer.scrollTop(); //alert("finalScrollTop: " + finalScrollTop); //动画效果 mainContainer.animate({ scrollTop:finalScrollTop }, 0);//1秒滑动到指定位置 } var classUtil = { //获取对象数组中属性key对应的所有value值 getAllValuesByKey:function(objArr,key){ var valueArr = []; if(objArr == undefined || key == undefined){ return []; } $.each(objArr,function(index,obj){ valueArr.push(obj[key]); }); return valueArr; }, getObjByKeyValue:function(objArr,key,value){ var target = null; $.each(objArr,function(index,obj){ if(obj[key] == value){ target = obj; return false; } }); return target; }, isEmpty:function(value){ return value == undefined || value == ""; }, dealStrValue:function(value){ if(value == undefined || value == "undefined"){ return ""; }else{ return value; } }, dealDateValue:function(value){ return value == undefined?"":new Date(value).format('yyyy-MM-dd hh:mm:ss'); }, /** * 多个text/value值间用逗号隔开 * @param objArr 对象列表 * @param textStr 用逗号隔开的text字符串 * @param textProperty text对应的对象中属性 * @param valueProperty value对应的对象中属性 * */ getValuesByTextStr:function(objArr,textStr,textPropery,valueProperty){ var values = ""; if(textStr == undefined || textStr == ""){ return values; } var textArr = textStr.split(","); $.each(textArr,function(index,text){ for(var i=0; i<objArr.length; i++){ if(objArr[i][textPropery] == text ){ if(values == ""){ values = objArr[i][valueProperty]; }else{ values += "," + objArr[i][valueProperty]; } break; } }//for }); return values; } };
    转载请注明原文地址: https://ju.6miu.com/read-11385.html

    最新回复(0)