Показать сообщение отдельно

  #14  
Старый 30.03.2009, 19:41
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
С нами: 9840758

Репутация: 808


По умолчанию

Цитата:
Сообщение от Дикс  
Вот. здесь можно чета улучшить ещё?
Конечно.


Код:
for(var i = 0; i < 61; i++)
Обрабатываются только первые 62 знака исходного текста. Всё, что после - нет.


Код:
'\'': '',  '\"': '',  '\#': '',  '\$': '',
'\%': '',  '\&': '',  '\*': '',  '\,': '',
'\:': '',  '\;': '',  '\<': '',  '\>': '',
'\?': '',  '\[': '',  '\]': '',  '\^': '',
'\{': '',  '\}': '',  '\|': '',  '\!': '',
'\@': '',  '\(': '',  '\)': '',  '\-': '_',
'\=': '',  '\+': '',  '\/': '',  '\\': ''
Экранирующий слэш нужен только в первом и последнем случаях. Зачем вообще удалять все эти символы - неясно.


Код:
var character;
var field = document.getElementById(id);
var from = field.value.toLowerCase();
field.value = '';
Лучше бы функции транслитерации только этим и заниматься, ей передали текст (и таблицу замен - опционально) - она вернула текст, не очищая там попутно левые поля, не заполняя их ничем, но это так, к слову.


Код:
character = from.charAt(i);
Пусть


Код:
field.value += (character in charsArray) ? charsArray[character] : character;
Можно было обойтись без этой проверки, немного развернув логику - проходить не по строке, а по самой таблице замен. (for..in)
 
Ответить с цитированием