我是Java的新手,所以我不太了解这门语言。 我有一个简单的HTML表单来填写登录注册。
我的问题是用户名中的详细信息,它不能包含一些无效字符(例如重音和符号),我不知道如何检查用户名字符。
我使用request.getParameter("username")
获取String
变量中的用户名。
String username = request.getParameter("username");
我该怎么办?
答案 0 :(得分:6)
一种简单的方法是String#matches(String regex)
功能:
布尔匹配(String regex)
判断此字符串是否与给定的正则表达式匹配。
String username = request.getParameter("username");
boolean valid = (username != null) && username.matches("[A-Za-z0-9_]+");
但是如果要多次使用它,则使用Pattern
:
Pattern pattern = Pattern.compile("[A-Za-z0-9_]+");
每次都使用它:
boolean valid = (username != null) && pattern.matcher(username).matches();
答案 1 :(得分:0)
使用此Bean验证库:
https://github.com/ankurpathak/username-validation https://mvnrepository.com/artifact/com.github.ankurpathak.username/username-validation
它具有Google的所有限制,例如用户名验证等等。
图书馆在处理用户名验证方面有不同的限制:
默认情况下,所有约束都忽略空白,这样它将由NotBlank标准bean验证约束单独重新发布,我们可以使用每个约束的ignoreBlank(默认为true)标志来实现同样的效果。因此,像Google这样的用户名可以通过以下方式实现:
@UsernamePattern
@StartWithAlphaNumeric
@NotContainConsecutivePeriod
@EndWithAlphaNumeric
@NotBlank
private String username;