javascript888,
ввести справа
SH'yotka в вашем варианте и в этом
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>translit</title>
</head>
<body>
<! -- Задача 4.1>
<textarea name="" cols="30" rows="10" id="one"></textarea>
<textarea name="" cols="30" rows="10" id="two"></textarea>
<script>
'use struck';
let oneTa = document.querySelector('#one');
let twoTa = document.querySelector('#two');
let arr = ['а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'];
let arr2 = ['a', 'b', 'v', 'g', 'd', 'e', 'yo', 'zh', 'z', 'i', 'iy', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'kh', 'ts', 'ch', 'sh', "sh'", "'", 'y', "'", 'ye', 'yu', 'ya'];
let {
rus,
eng
} = arr.reduce((obj, a, i) => {
i = arr2[i];
obj.rus[a] = i;
obj.eng[i] = a;
return obj
}, {
rus: {},
eng: {}
});
arr2.sort((a, b) => b.length - a.length);
oneTa.addEventListener('blur', () => {
twoTa.value = translit(oneTa.value, 'rus');
});
twoTa.addEventListener('blur', () => {
oneTa.value = translit(twoTa.value, 'eng');
});
function translit(str, lang) {
let ar = arr, swap = rus;
if (lang == 'eng') {
ar = arr2, swap = eng
};
ar.forEach(a => {
let reg = new RegExp(a, 'gm');
str = str.replace(reg, a => swap[a]);
reg = new RegExp(a.toUpperCase(), 'gm');
str = str.replace(reg, a => swap[a.toLowerCase()].toUpperCase());
})
return str
}
</script>
</body>
</html>