从"Blog"仓库中分离出来

This commit is contained in:
小海
2019-11-28 19:18:16 +08:00
commit 16cc30f513
119 changed files with 11291 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
package cn.celess.blog.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author : xiaohai
* @date : 2019/05/12 11:04
*/
public class RegexUtil {
/**
* 网址匹配
*
* @param url
* @return
*/
public static boolean urlMatch(String url) {
if (url == null || url.replaceAll(" ", "").isEmpty()) {
return false;
}
//正则 http(s)://www.celess/xxxx,www.celess.cn/xxx
String pattern = "^(http://|https://|)([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$";
return match(url, pattern);
}
/**
* 邮箱验证
*
* @param email
* @return
*/
public static boolean emailMatch(String email) {
if (email == null || email.replaceAll(" ", "").isEmpty()) {
return false;
}
//正则
String pattern = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
return match(email, pattern);
}
/**
* 手机号匹配
*
* @param phone
* @return
*/
public static boolean phoneMatch(String phone) {
if (phone == null || phone.replaceAll(" ", "").isEmpty()) {
return false;
}
//正则
String pattern = "^([1][3,4,5,6,7,8,9])\\d{9}$";
return match(phone, pattern);
}
/**
* 密码正则
* 最短6位最长16位 {6,16}
* 可以包含小写大母 [a-z] 和大写字母 [A-Z]
* 可以包含数字 [0-9]
* 可以包含下划线 [ _ ] 和减号 [ - ]
*
* @param pwd
* @return
*/
public static boolean pwdMatch(String pwd) {
if (pwd == null || pwd.replaceAll(" ", "").isEmpty()) {
return false;
}
//正则
String pattern = "^[\\w_-]{6,16}$";
return match(pwd, pattern);
}
private static boolean match(String str, String pattern) {
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);
return m.matches();
}
}