 
			
				01.07.2021, 15:43
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.05.2021 
					
					
					
						Сообщений: 16
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Сделайте так, чтобы при вводе во второй текстареа транслита текста, по потери фокуса
			 
			
		
		
		
		Сделайте так, чтобы при вводе во второй текстареа транслита текста, по потери фокуса этот текст преобразовывался в русский и выводился в первом текстареа.  
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>focusout</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 = [...arr, ...uppCase(arr)];
    let eng = [...arr2, ...uppCase(arr2)];
    oneTa.addEventListener('blur',()=>{
        twoTa.value=translit(oneTa.value,'rus');
    });
    twoTa.addEventListener('blur',()=>{
        oneTa.value=translit(twoTa.value,'eng');
    });
    function translit(str, lang) {
        let newStr = '';
        for (let i = 0; i < str.length; i++) {
            if (lang == 'rus') {
                if (str[i] != ' ') {
                    let ind = rus.indexOf(str[i]);
                    newStr += eng[ind];
                } else {
                    newStr += str[i];
                }
            }
            if (lang == 'eng') {
                if (str[i] != ' ') {
                    let ind = eng.indexOf(str[i]);
                    newStr += rus[ind];
                } else {
                    newStr += str[i];
                }
            }
        }
        return newStr;
    }
    function uppCase(arr) {
        let mas = [];
        for (let i = 0; i < arr.length; i++) {
            mas[i] = arr[i].toUpperCase();
        }
        return mas;
    }
</script>
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.07.2021, 17:26
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		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>
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |