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

Java代码使用正则验证和常用工具方法

2016-05-14 15:44 816 查看
1.正则验证邮箱

public static boolean checkEmail(String email){
boolean flag = false;
try{
String check = "^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher(email);
flag = matcher.matches();
}catch(Exception e){
flag = false;
}
return flag;
}


2.验证昵称是否合法

  /**
* 验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数
* @return
*/
public static boolean validateUserName(String userName) {

String validateStr = "^[\\w\\--_[0-9]\u4e00-\u9fa5\uFF21-\uFF3A\uFF41-\uFF5A]+$";
boolean rs = false;
rs = matcher(validateStr, userName);
if (rs) {
int strLenth = getStrLength(userName);
if (strLenth < 4 || strLenth > 15) {
rs = false;
}
}
return rs;
}

/**
* 获取字符串的长度,对双字符(包括汉字)按两位计数
* @return
*/
public static int getStrLength(String value) {
int valueLength = 0;
String chinese = "[\u0391-\uFFE5]";
for (int i = 0; i < value.length(); i++) {
String temp = value.substring(i, i + 1);
if (temp.matches(chinese)) {
valueLength += 2;
} else {
valueLength += 1;
}
}
return valueLength;
}

private static boolean matcher(String reg, String string) {
boolean tem = false;
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(string);
tem = matcher.matches();
return tem;
}


3.判断是否是数字

public static  boolean isInteger(String value) {
Pattern p = Pattern.compile("^[0-9]{11}$");
Matcher m = p.matcher(value);
boolean isOK = m.find();
return isOK;
}


4.创建随机数

public static int buildRandom(int length) {
int num = 1;
double random = Math.random();
if (random < 0.1) {
random = random + 0.1;
}
for (int i = 0; i < length; i++) {
num = num * 10;
}
return (int) ((random * num));
}


5.获取机型,浏览器类型

public static  String getTypeas(HttpServletRequest request) {
String typeas= request.getHeader("User-Agent");
if (typeas.equals("")||typeas==null) {
typeas="nothing";
}
return typeas;
}


5.获取IP地址

public static  String getIp(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip="unknown";
}
return ip;
}


6.判断数字是否在数组内

public static boolean isIn(Integer substring, Integer[] source) {
if (source == null || source.length == 0) {
return false;
}
for (int i = 0; i < source.length; i++) {
Integer aSource = source[i];
if (aSource.equals(substring)) {
return true;
}
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: