Я использую TextInput компонента Flex 4.5 для ввода текста на английском языке. Я использую атрибут restrict , чтобы ... ограничить ввод с клавиатуры только символами a-zA-Z. Проблема в том, что если я скопирую / вставлю слово на другом языке, я смогу вставить его в компонент TextInput. Есть ли способ избежать этого? Если нет, как я могу проверить введенные данные на указанном языке?
Я обнаружил, что набор символов китайского + языка Юникод имеет значение от \ u4E00 до \ u9FFF. Поэтому я пишу следующее:
var chRE:RegExp = new RegExp("[\u4E00-\u9FFF]", "g");
if (inputTI.text.match(chRE)) {
trace("chinese");
}
else {
trace("other");
}
Но если я введу в TextInput слово 'hello', оно будет подтверждено ... В чем ошибка?
Поскольку я не могу (моя ошибка? Или ошибка?) Использовать диапазон Юникода с RegExp, я написал следующую функцию, чтобы проверить, есть ли слово на китайском и все.
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;
}