ghbdtn => привет. Перевод с английского регистра на русский

105
01 октября 2021, 02:50

Пишу бота для дословного перевода сообщений с английского на русский. Хотелось бы узнать об общепринятых решениях этой задачи, а не придумывать велосипед как обычно.

Answer 1

let en = "qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOP{}ASDFGHJKL:\"ZXCVBNM<>?~&" 
let ru = "йцукенгшщзхъфывапролджэячсмитьбю.ёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё?"; 
 
let alphabet = {} 
for( let i = 0; i < en.length; i++ ){ 
  alphabet[en[i]] = ru[i]; 
} /* Так легче сделать объект, чем вручную всё записывать. 
     Окончательный вариант уже можно прописать в виде обычного объекта. */ 
 
console.log( JSON.stringify( alphabet ) ); 
 
let jin = document.getElementById('jin'); 
let jout = document.getElementById('jout'); 
 
jin.addEventListener('input', function(){ 
  jout.innerHTML = toRussianStr( this.value ); 
}); 
 
function toRussianStr(str){ 
  return str.replace(/\S/g, function(match){ 
    /* \S в регулярных выражениях - совпадает с любым символом кроме пробельных. 
     * Совпадение передается функции, через переменную match 
     * А функция возвращает перевод, если такой есть...  
     * || ИЛИ тот же символ - красным, если он не найден.   
     */ 
    return alphabet[match] || '<span style="color: red;">' + match + '</span>'; 
  }); 
} 
 
jout.innerHTML = toRussianStr(jin.value);
<textarea id="jin">ghbdtn vbh!</textarea> 
<div id="jout"></div>

READ ALSO
jQuery: заменить последнее числовое значение в строке

jQuery: заменить последнее числовое значение в строке

Есть плагин для клонирования полей формы, в котором индекс в атрибуте name прирастает при каждом клонировании, те

159
Не могу установить data атрибут

Не могу установить data атрибут

Есть select, который используется с плагином select2И мне надо использовать свои атрибуты

98
Не добавляеться класс через jQuery [закрыт]

Не добавляеться класс через jQuery [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

71