我需要验证用户的屏幕名称,以确保它不能有多个连字符或下划线 我不希望人们的屏幕名称都是标点符号。
这是我到目前为止的验证:
public boolean validateScreenName(String screenName) {
// Check screen name has > 0 chars and that it contains only a-z, A-Z, _ and -
boolean validated = false;
if (screenName.matches("[a-zA-Z0-9_-]{1,20}")
&& (! screenName.equals(""))
&& (! screenName.contains("\s"))) {
validated = true;
} else {
validated = false;
}
return validated;
}
我想添加无多重连字符/下划线验证作为另一个 if 条件,可能以正则表达式的形式出现?
您可以使用:
screenName.matches("^(?=[^_-]*[_-]?[^_-]*$)[a-zA-Z0-9_-]{1,20}$")
其他条件不是必需的,它们是多余的。
因为你已经有效地证明了这个词所包含的内容。您可以将此检查添加到另一个 if 条件中。
screenName.matches("[^-]*-?[^-]*")