ГлавнаяБлогПеревод текста из английской раскладки в русскую [javascript]

Перевод текста из английской раскладки в русскую [javascript]

Рамиль Юналиев
Рамиль Юналиев
E-Commerce Lead
6 ноября 2014 г.
1 мин чтения

Функция autoKeyboardLang заменяет каждую латинскую букву на соответствующую русскую, сохраняя регистр.

autoKeyboardLang: function(str) {
    var s = [
        "й","ц","у","к","е","н","г","ш","щ","з","х","ъ",
        "ф","ы","в","а","п","р","о","л","д","ж","э",
        "я","ч","с","м","и","т","ь","б","ю"
    ];
 
    var r = [
        "q","w","e","r","t","y","u","i","o","p","[","]",
        "a","s","d","f","g","h","j","k","l",";","'",
        "z","x","c","v","b","n","m",",","."
    ];
 
    for (var i = 0; i < r.length; i++) {
        var reg = new RegExp(r[i], 'mig');
        str = str.replace(reg, function(a) {
            return a == a.toLowerCase() ? s[i] : s[i].toUpperCase();
        });
    }
 
    return str;
}

Применять только если строка содержит латиницу и не является уже русской:

if (!/^[а-яё ]*$/i.test(s)) {
    $(input).val(autoKeyboardLang(s));
}