我上的应用程序,允许用户输入日语文字工作。我试图想出一个方法来确定用户的输入是否是日文假名(平假名,片假名,或汉字)。确认假名输入
有在进入拉丁文字是不恰当的应用有一定的领域,我需要一种方法来限制某些领域只有日文汉字,或片假名,只有等
该项目采用UTF-8编码。我不希望接受JIS或Shift-JIS输入。
想法?
我上的应用程序,允许用户输入日语文字工作。我试图想出一个方法来确定用户的输入是否是日文假名(平假名,片假名,或汉字)。确认假名输入
有在进入拉丁文字是不恰当的应用有一定的领域,我需要一种方法来限制某些领域只有日文汉字,或片假名,只有等
该项目采用UTF-8编码。我不希望接受JIS或Shift-JIS输入。
想法?
这听起来像你基本上只是需要检查每一个Unicode字符是否是一个特定的范围内。 Unicode code charts应该是一个很好的起点。
如果您使用.NET,我MiscUtil库有一些Unicode的支持范围内 - 这是原始的,但它应该做的工作。我现在没有提供源代码,但稍后如果有帮助,稍后会更新此帖子。
不知道一个完美的答案,但在维基百科上列出的一个Unicode范围katakana和hiragana。 (我所期望的,也可以从unicode.org为好。)
检查对输入的范围应以与语言无关的方式验证Unicode的平假名或片假名。
对于汉字,我认为它会更复杂一点,因为我希望中文和日文中的中文字符都包含在同一个范围内,但是我可能在这里是错的。 (我不能指望中国简体和繁体中国要包含在同一范围内......)
哦哦!我曾经有过这样的一次......我对平假名,然后是片假名,然后是汉字有一个正则表达式。我忘记了确切的代码,我会去看看。因为你双倍的问题
正则表达式是巨大的。而我这样做是在PHP中,我额外的强劲的汽车问题产生
- 编辑 -
$pattern = '/[^\wぁ-ゔァ-ヺー\x{4E00}-\x{9FAF}_\-]+/u';
选择,我发现这个here,但它不是很大......我将继续寻找
- 编辑 - 我通过便携式硬盘驱动器看上去....我想我一直保持,从上公司特定摘录...对不起。
乔恩,你不会碰巧有源得心应手,你会吗? – 2009-11-26 04:50:16
@Zack:按照链接,你可以下载它:) – 2009-11-26 07:19:17