2010-01-06 36 views
0

如果我创建以下列方式文字过滤本地化

class AlphaTextFilter extends TextFilter { 

    public char convert(char c, int status) { 
     if (!validate(c)) 
       return 0; 
     return c; 
    } 

    public boolean validate(char c) { 
     return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')); 
    } 
} 

文本过滤器如果代码的设备上除英语以外语言的一些运行它会工作...?我怎样才能让本地化....?

回答

0

这取决于你对“工作”的定义是什么。如果通过“工作”你的意思是只接受[a-zA-Z],那么是的。

如果你的意思是它能够满足国际用户谁希望使用字母,音节或表意字符(或“字母”更常见的用法)的预期,则没有。现在大多数平台都提供了一些用于识别unicode字符类的机制,而大多数较新的正则表达式引擎都支持基于unicode字符类的匹配。就你而言,\ p {letter}看起来是最合适的角色类别。

0

是的,我相信是的。

A char是一个char无论你在什么地方。无论如何它都是Unicode,所以不应该有任何的本地化问题。

2

怎么样使用像CharacterUtilities.isLetter()这样的东西来检查它是否是一个字母?

+0

对于如何验证文本字段的起始字母是否在大写字母(尽管其他字母可能是小写字母),您有什么想法吗?如果您能提出可能的解决方案,请注意。 – techie 2012-05-18 06:00:55