来源:有的时候,需要过滤字符串的格式,但是一个一个去寻找,又麻烦,我自己就记录一点点,以后再碰到就更新
public static String htmlFilter(String htmlStr) {
String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式
String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式
// String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式
String regEx_html = "(\\r\\n|\\r|\\n|\\n\\r)";
Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
Matcher m_script = p_script.matcher(htmlStr);
htmlStr = m_script.replaceAll(""); //过滤script标签
Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
Matcher m_style = p_style.matcher(htmlStr);
htmlStr = m_style.replaceAll(""); //过滤style标签
Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
Matcher m_html = p_html.matcher(htmlStr);
htmlStr = m_html.replaceAll(""); //过滤html标签
return htmlStr;
}
这是 新加的:1、过滤回车和换行符
newString = myString.replaceAll("(\r\n|\r|\n|\n\r)", "<br>");
/*
* 如果是小数,保留两位,非小数,保留整数
* @param number
*/
public static String getDoubleString(double number) {
String numberStr = "";
if (((int) number * 1000) == (int) (number * 1000)) {
//如果是一个整数
numberStr = String.valueOf((int) number);
} else {
DecimalFormat df = new DecimalFormat("######0.00");
numberStr = df.format(number);
}
return numberStr;
}
这个判断字符串,是否有汉字,或者金额字符串处理的方法:
Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?[万][人][民][币]");
boolean blo1 = pattern1.matcher(amount).matches();
这个是判断是否全为数字,支持小数点:0.123 此类形式
/**
* 判断一个字符串是否是数字。
*
* @param string
* @return
*/
public static boolean isNumber(String string) {
if (string == null)
return false;
Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?$");
return pattern.matcher(string).matches();
}