Не работает скрипт с русскими символами

310
28 июля 2017, 04:01

Есть функция:

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, то результат функции будет -. При чем не работает только с русскими символами.

Почему это может происходить?

READ ALSO
Пример с valueOf [дубликат]

Пример с valueOf [дубликат]

На данный вопрос уже ответили:

202
Как связать форму входа с другой страницой

Как связать форму входа с другой страницой

Как связать две страницы между собой?

290