Q_BASIC
Хранитель порядка
- Регистрация
- 30 Ноя 2013
- Сообщения
- 516
- Реакции
- 1.240
- Автор темы
- #1
Есть функция заменяющая английские символы на русские (На случай, если пользователь пишет русское слово в английской раскладке) :
Но почему-то не работает
Так:
Когда доходит до "]" выводит ошибку:
Так:
Вообще ничего не заменяет
UPD
Всё, додумался:
Код:
function translit (word){
word = word.toLowerCase();
var eng = ['f', ',', '<', 'd', 'u', 'l', 't', ';', ':', 'p', 'b', 'q', 'r', 'k', 'v', 'y', 'j', 'g', 'h', 'c', 'n', 'e', 'a', '[', '{', 'w', 'x', 'i', 'o', '\'', '"', '.', '>', 'z'];
var rus = ['а', 'б', 'б', 'в', 'г', 'д', 'е', 'ж', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'х', 'ц', 'ч', 'ш', 'щ', 'э', 'э', 'ю', 'ю', 'я'];
for(var i=0; i<eng.length; i++) {
var RE = new RegExp (eng[i], 'gi');
word = word.replace(RE, rus[i]);
}
return word;
}
Но почему-то не работает
Так:
Код:
var RE = new RegExp (eng[i], 'gi');
word = word.replace(RE, rus[i]);
Когда доходит до "]" выводит ошибку:
Код:
SyntaxError: Invalid regular expression: /[/: Unterminated character class
Так:
Код:
word = word.replace(eng[i], rus[i]);
UPD
Всё, додумался:
Код:
function translit (word){
word = word.toLowerCase();
var eng = ['f', '\\,', '\\<', 'd', 'u', 'l', 't', '\\;', '\\:', 'p', 'b', 'q', 'r', 'k', 'v', 'y', 'j', 'g', 'h', 'c', 'n', 'e', 'a', '\\[', '\\{', 'w', 'x', 'i', 'o', '\\\'', '\\"', '\\.', '\\>', 'z'];
var rus = ['а', 'б', 'б', 'в', 'г', 'д', 'е', 'ж', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'х', 'ц', 'ч', 'ш', 'щ', 'э', 'э', 'ю', 'ю', 'я'];
for(var i=0; i<eng.length; i++) {
var RE = new RegExp (eng[i], 'gi');
word = word.replace(RE, rus[i]);
}
return word;
}
Последнее редактирование: