清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
发现开发了几个项目都要用到这些字符处理,资料虽少,但还是简单做了记录,以便以后用得上。
public class VerifyTool {
/*
* 邮箱验证
*/
public static boolean isEmail(String email) {
return Pattern.compile("^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$").matcher(email).matches();
}
/**
* 验证密码格式, 只支持英文和数字.
*
*/
public static boolean verifyPasswordFormat(String pwd) {
return Pattern.compile("[a-zA-Z0-9]*").matcher(pwd).matches();
}
/**
*
* @description:验证手机号是否正确(这是根据我们项目需要进行的,实际的不一定都这样)
*/
public static boolean isMobileNO(String telephone) {
if (TextUtils.isEmpty(telephone))
return false;
// Pattern pattern = Pattern.compile("^0?(13[0-9]|15[012356789]|17[012356789]|18[012356789]|14[57])[0-9]{8}$");
Pattern pattern = Pattern.compile("^1[3,4,5,7,8][0-9]\\d{8}$");
Matcher matcher = pattern.matcher(telephone);
return matcher.matches();
}
/**
* 验证电话号码及是否正确;
*
*/
public static boolean isPhoneNO(String mobiles) {
Pattern p = Pattern.compile("^\\d{10,12}$");
Matcher m = p.matcher(mobiles);
return m.matches();
}
/**
* 验证6位短信验证码是否正确;
*
*/
public static boolean isSmsCode(String msgCode) {
Pattern p = Pattern.compile("^\\d{6}$");
Matcher m = p.matcher(msgCode);
return m.matches();
}
/**
* 验证IP和端口的格式是否有误
*
* @param ip
* 访问服务器 IP 地址
* @param port
* 访问服务器端口
* @return 校验ip和端口 return -1 ip 或者 port 为空. -2 ip格式错误. -3 port为数字 0 通过
* */
public static final int verificateIPAndPort(String ip, String port) {
if (null == ip || "".equals(ip) || null == port || "".equals(port)) {
return -1;
}
try {
Integer.parseInt(port);
}
catch (NumberFormatException e) {
return -3;
}
Pattern pattern = Pattern.compile("\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b");
Matcher matcher = pattern.matcher(ip.trim());
if (matcher.matches()) {
return 0;
}
else {
return -2;
}
}
/**
*
* 方法概述:
*
* @description 方法详细描述:验证输入的金额为整数且只能有两个位小数
*/
public static boolean monneyFormate(String s) {
if (TextUtils.isEmpty(s))
return false;
Pattern pattern = Pattern.compile("^(-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2})?$");
return pattern.matcher(s).matches();
}
/**
* (判断字符串的长度)
*/
public static boolean isCheckLength(String str, int start, int end) {
Pattern pattern = Pattern.compile("^.{" + start + "," + end + "}$");
return pattern.matcher(str).matches();
}
/**
* @author:tsp
* @Title: isLength
* @Description: TODO(判断身份证的长度)
* @param @param str
* @param @return
* @return boolean
* @throws
*/
public static boolean isCheckCardLenth(String str, int start, int end) {
Pattern pattern = Pattern.compile("^[A-Za-z0-9].{" + start + "," + end + "}$");
return pattern.matcher(str).matches();
}
/**
*
* @description:判断是否是身份证格式
*/
public static boolean checkCardNo(String cardNo) {
Pattern pattern = Pattern.compile("(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)");
Matcher matcher = pattern.matcher(cardNo);
return matcher.matches();
}
/**
* 判断中文
*/
public static boolean isChineseChar(String inputString) {
Pattern pattern = Pattern.compile("^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$");
// Pattern pattern = Pattern.compile("^[\\u4E00-\\u9FA5]");
return pattern.matcher(inputString).matches();
}
/**
* 匹配非负浮点数
*/
public static boolean isRealNumber(String inputString) {
Pattern pattern = Pattern.compile("^[0-9]+(.[0-9]{1,5})?$");
return pattern.matcher(inputString).matches();
}
/**
* 匹配非负浮点数
*/
public static boolean isNotNegativeFloat(String inputString) {
Pattern pattern = Pattern.compile("^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$");
return pattern.matcher(inputString).matches();
}
/**
* 手机号码截取成130****123类型字段,因为用之前方式 的话,诸如17999999990类似号码会截取成:17********0
*/
public static String splitePhone(String phone) {
String[] tel = new String[phone.length()];
StringBuffer sb = new StringBuffer();
if (tel.length > 0) {
for (int i = 0; i < tel.length; i++) {
if (i > 2 && i < 7) {
sb.append("*");
} else {
sb.append(phone.charAt(i));
}
}
}
return sb.toString();
}
}