Есть функция:
function translit() {
var str = ge("search_input").value;
var result = '';
var space = "-";
var transl = {
'а': 'a',
'б': 'b',
'в': 'v',
'г': 'g',
'д': 'd',
'е': 'e',
'ё': 'e',
'ж': 'zh',
'з': 'z',
'и': 'i',
'й': 'j',
'к': 'k',
'л': 'l',
'м': 'm',
'н': 'n',
'о': 'o',
'п': 'p',
'р': 'r',
'с': 's',
'т': 't',
'у': 'u',
'ф': 'f',
'х': 'h',
'ц': 'c',
'ч': 'ch',
'ш': 'sh',
'щ': 'sh',
'ъ': space,
'ы': 'y',
'ь': space,
'э': 'e',
'ю': 'yu',
'я': 'ya'
}
if (str != '')
str = str.toLowerCase();
for (var i = 0; i < str.length; i++) {
if (/[а-яё]/.test(str.charAt(i))) {
result += transl[str.charAt(i)];
} else if (/[a-z0-9]/.test(str.charAt(i))) {
result += str.charAt(i);
} else {
if (result.slice(-1) !== space) result += space;
}
}
return result;
}
Если ее вставить в консоль, то при вызове translit()
при str=привет
результатом будет privet
, но если функция будет находиться в файле, например, main.js
, то результат функции будет -
. При чем не работает только с русскими символами.
Почему это может происходить?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок