Сообщение от
Дикс
Вот. здесь можно чета улучшить ещё?
Конечно.
Код:
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)