用正则表达式验证用户名

来源:互联网 发布:ecshop 打印sql语句 编辑:程序博客网 时间:2024/05/21 05:59
package com.javacodegeeks.java.core;import java.util.regex.Matcher;import java.util.regex.Pattern;public class UsernameValidator {private Pattern pattern;private Matcher matcher;private static final String USERNAME_PATTERN = "^[a-z0-9._-]{2,25}$";public UsernameValidator() {this.pattern = Pattern.compile(USERNAME_PATTERN);}public boolean validate(final String password) {matcher = pattern.matcher(password);return matcher.matches();}}
package com.javacodegeeks.java.core;import static org.junit.Assert.*;import java.util.Arrays;import java.util.Collection;import org.junit.BeforeClass;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;@RunWith(Parameterized.class)public class UsernameValidatorTest {private static String arg;private static UsernameValidator usernameValidator;private Boolean expectedValidation;public UsernameValidatorTest(String str, Boolean expectedValidation) {this.arg = str;this.expectedValidation = expectedValidation;}@BeforeClasspublic static void initialize() {usernameValidator = new UsernameValidator();}@Parameterspublic static Collection<Object[]> data() {Object[][] data = new Object[][] {{"ascaefghfdghdfhdfghdfghdfhdfghdfghdfghdfghdfghdfghdfghdfghdfghdfghvavasv",false }, { "gregory.mar_james-law", true },{ "n!k1", false }, { "f", false } };return Arrays.asList(data);}@Testpublic void test() {assertEquals("Result", this.expectedValidation,usernameValidator.validate(this.arg));}}


0 0
原创粉丝点击