您的位置:首页 > 编程语言 > Java开发

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

2017-03-09 14:53 465 查看

一. java常用工具函数

1.1 日期函数

//按照指定格式获取当前日期字符串
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;
}


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");
}
}


二. 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;
}


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')));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息