我目前正在验证用户名输入,并且必须验证某些特殊字符是否允许插入输入。
白名单中的字符为:
$#+{}:?.,~@"
和空格
黑名单中的字符为:
^$;\-()<>|='%_
验证应该允许任何字母数字字符与一个或多个特殊字符和空格。它也可以处理黑名单情况,两种方式都可以。
我有这个:
public static boolean alphNum(String value) {
Pattern p = Pattern.compile("^[\\w ]*[^\\W_][\\w ]*$");
Matcher m = p.matcher(value);
return m.matches();
}
原本只允许字母数字和空格,但现在需要允许特定列表中的特殊字符。
以下是需要允许的一些示例:
- Name1$
- Name1# Name2
- Name1 Name2
- Name Name2
- Name1 Name...
我看过很多正则表达式验证,但没有这么具体的,如果有人能帮我解决这个问题,我会非常感激。