我使用Flex 4.5的TextInput组件以英文输入一些文字。 我用的是限制属性...限制键盘输入只有-ZA-Z字符。 问题是,如果我复制/粘贴到其他语言的话,我可以将其粘贴到TextInput组件。 有没有办法避免? 如果没有,我怎么能验证对指定的语言输入?
我发现Unicode的一套中国+语言符号是\ u4E00到\ u9FFF。 所以我写了以下内容:
var chRE:RegExp = new RegExp("[\u4E00-\u9FFF]", "g");
if (inputTI.text.match(chRE)) {
trace("chinese");
}
else {
trace("other");
}
但是,如果我在TextInput字“你好”,然后它验证型...什么是错误?
因为我不能(我的错?还是错误?)使用Unicode范围进行正则表达式,我写了下面的函数来检查,如果一个词在中国,就是这样。
private function isChinese(word:String):Boolean
{
var wlength:int = word.length;
for (var i:int = 0; i < wlength; i++) {
var charCode:Number = word.charCodeAt(i);
if (charCode <= 0x4E00 || charCode >= 0x9FFF) {
return false;
}
}
return true;
}