2010-06-28 84 views
1

我想要使用jsf验证程序对(,/'#[email protected][]}{+_)(*&^%$£"!\|<>) 等特殊字符进行验证。我已经实现了验证号码,但现在我想为特殊字符进行验证。JSF:对特殊字符的验证

value.toString().trim().matches(); 

java class中的matches()方法里面的正则表达式是什么?

我想允许所有的字段不包括指定的字符。

在此先感谢

回答

3

你为什么不只是允许字母数字字符

if (!value.toString().trim().matches("\\p{Alnum}*")) { 
    throw new ValidatorException(new FacesMessage("Invalid characters!")); 
} 

如果你真的想在这个方向前进。要检查是否字符串中包含这些字符,请使用此:

if (value.toString().trim().matches(".*[,/'#[email protected]\\x5B\\x5D}{+_)(*&^%$£\"!\\|<>]+.*")) { 
    throw new ValidatorException(new FacesMessage("Invalid characters!")); 
} 

请记住,有可用更多的字符在UNICODE字符集你可能也想禁止。

+0

嗨,Balus thanx 4回复...但我想限制只有列表中的字符...所有其他人将被允许...(即“。”和空格等允许) – 2010-06-28 15:05:59

+2

如何[Unicode]中有100万个其他字符(http://www.fileformat.info/info/unicode/block/index.htm)?你更愿意匹配**允许的**字符,而不是*不允许的*字符。 – BalusC 2010-06-28 15:36:41

+0

你对...但它不能解决我的问题... – 2010-06-28 18:24:01