package com.wck;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.regex.Pattern;
@SpringBootTest
public class PatternDemoTest {
/* 要使用正则表达式验证账号格式,
满足以下条件:4-20位,仅支持汉字、数字、字母、减号(-)和下划线(_)。
^ 表示字符串的开始
[\\u4e00-\\u9fa5] 匹配任意一个汉字
\\w 匹配任意一个字母、数字或下划线
- 匹配减号
{4,20} 表示长度在4到20之间
$ 表示字符串的结束
*/
@Test
public void patternNameTest() {
String regex = "^[\\u4e00-\\u9fa5\\w-]{4,20}$";
boolean account = Pattern.matches(regex, "account");
System.out.println("是否满足 account = " + account);
System.out.println("是否满足 account = " + Pattern.matches(regex, "A满-_"));
System.out.println("是否满足 account = " + Pattern.matches(regex, "-123"));
//false
System.out.println("是否满足 account = " + Pattern.matches(regex, "&444"));
System.out.println("是否满足 account = " + Pattern.matches(regex, "44"));
}
/**
* 密码8-20位,仅支持汉字、数字,并且必须符合两种以上的组合
* ^ 表示字符串的开始
* (?=.*[\\u4e00-\\u9fa5]) 表示必须包含至少一个汉字
* (?=.*\\d) 表示必须包含至少一个数字
* [\\u4e00-\\u9fa5\\d] 匹配任意一个汉字或数字
* {8,20} 表示长度在8到20之间
* $ 表示字符串的结束
*/
@Test
public void patternPassWordTest() {
String regex = "^(?=.*[\\u4e00-\\u9fa5])(?=.*\\d)[\\u4e00-\\u9fa5\\d]{8,20}$";
System.out.println("是否满足 account = " + Pattern.matches(regex, "汉字123456"));
//false
System.out.println("是否满足 account = " + Pattern.matches(regex, "123汉字"));
System.out.println("是否满足 account = " + Pattern.matches(regex, "abc123"));
System.out.println("是否满足 account = " + Pattern.matches(regex, "abc汉字"));
}
/**
* 手机号11位数字
* ^ 表示字符串的开始
* 1 表示手机号码必须以数字1开头
* \\d{10} 表示接下来的10个字符必须是数字
* $ 表示字符串的结束
*/
@Test
public void patternPhoneTest() {
String regex = "^1\\d{10}$";
System.out.println(Pattern.matches(regex, "13812345678"));
System.out.println(Pattern.matches(regex, "12345678901"));
System.out.println(Pattern.matches(regex, "13812345"));
}
/**
* 6位数字的验证码
*/
@Test
public void patternCodeTest() {
String regex = "^\\d{6}$";
System.out.println(Pattern.matches(regex, "345678"));
//false
System.out.println(Pattern.matches(regex, "78901"));
System.out.println(Pattern.matches(regex, "eww345"));
}
@Test
public void isBlank() {
String str1 = " ";
String str2 = "";
String str3 = null;
System.out.println("str1 = " + StringUtils.isBlank(str1));
System.out.println("str1 = " + StringUtils.isEmpty(str1));
System.out.println("str2 = " + StringUtils.isBlank(str2));
System.out.println("str2 = " + StringUtils.isEmpty(str2));
System.out.println("str3 = " + StringUtils.isBlank(str3));
System.out.println("str3 = " + StringUtils.isEmpty(str3));
}
}
正则表达式 手机号、密码、验证码
最新推荐文章于 2024-06-15 18:10:09 发布