![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2010
Сообщений: 30
|
Всем привет. Есть input textfield. Нужно при вводе заменять определенные символы на другие, например когда юзер нажимает "а", в текст поле нужно выводить "б". Каким образом это можно сделать?
|
|
|||||
|
[+5 27.02.11]
[+ 26.04.11] |
почитайте про text.indexOf()
__________________
Незнание правил освобождает от ответственности. |
|
|||||
|
Модрон-ветеринар
|
Вот такое решение. Поле сгенерировано, это для примера только.
var tf:TextField = this.createTextField('text_field', 0, 50, 50, 400, 40); tf.border = true ; tf.wordWrap = true ; tf.multiline = true ; tf.type = 'input'; var chr1:String = 'а'; //что заменяем var chr2:String = 'б'; //на что заменяем var lst:Object = new Object(); tf.addListener(lst); lst.onChanged = function () { var ind:Number = tf.text.indexOf(chr1); if(ind >= 0) { tf.replaceText(ind, ind + 1, chr2) } };
__________________
Идите первым! |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 30
|
|
|
|||||
|
Модрон-ветеринар
|
Насколько мне известно, это более ресурсоемко. Если я не прав, пусть меня поправят.
Хотя бы даже потому что в моем примере замена всегда происходит по одному симовлу сразу при вводе, при нахождении первого вхождения искомого, а при способе со split-join при каждом вводе будет перебираться весь введенный текст. Если строка мала - ничего, но если текст побольше будет, то уже накладно.
__________________
Идите первым! Последний раз редактировалось mooncar; 07.04.2011 в 22:03. |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|