我想对(,/'#~@[]}{+_)(*&^%$£"!\|<>)
等特殊字符应用验证
使用jsf验证器。我已经为数字实现了验证器,但现在我想为特殊字符制作验证器。
value.toString().trim().matches();
java类中matches()
方法中的正则表达式是什么?
我想允许除指定字符之外的所有字段。
提前致谢
答案 0 :(得分:3)
为什么不仅允许字母数字字符?
if (!value.toString().trim().matches("\\p{Alnum}*")) {
throw new ValidatorException(new FacesMessage("Invalid characters!"));
}
如果你真的想要朝着这个方向前进。要检查字符串是否包含这些字符,请使用:
if (value.toString().trim().matches(".*[,/'#~@\\x5B\\x5D}{+_)(*&^%$£\"!\\|<>]+.*")) {
throw new ValidatorException(new FacesMessage("Invalid characters!"));
}
请记住,您可能也想要禁用的Unicode字符集中有更多字符可供使用。