13
Сен
2021

Скрипт транслитератора в обе стороны

Как сделать что скрипт транслитерации работал в обе стороны??

При вводе русских букв переводил в английские (как сейчас), а при вводе английских букв переводил их в русские? Что дописать в скрипте? Брала код тут.

function translit() {
    var str = document.getElementById("name").value;
    var space = '-';
    var link = '';
    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))){ // заменяем символы на русском
        link += transl[str.charAt(i)];
    } else if (/[a-z0-9]/.test(str.charAt(i))){ // символы на анг. оставляем как есть
        link += str.charAt(i);
    } else {
        if (link.slice(-1) !== space) link += space; // прочие символы заменяем на space
    }
}
    document.getElementById("code").value = link;
}
<form name="form" method="post">
Название:<br>
<input name="name" type="text" id="name" onKeyUp="translit()" /><br>
Код для URL:<br>
<input name="code" type="text" id="code" />
</form>

Источник: https://ru.stackoverflow.com/questions/1328036/%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0-%D0%B2-%D0%BE%D0%B1%D0%B5-%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D1%8B

13
Сен
2021

Скрипт транслитератора в обе стороны

Как сделать что скрипт транслитерации работал в обе стороны??

При вводе русских букв переводил в английские (как сейчас), а при вводе английских букв переводил их в русские? Что дописать в скрипте? Брала код тут.

function translit() {
    var str = document.getElementById("name").value;
    var space = '-';
    var link = '';
    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))){ // заменяем символы на русском
        link += transl[str.charAt(i)];
    } else if (/[a-z0-9]/.test(str.charAt(i))){ // символы на анг. оставляем как есть
        link += str.charAt(i);
    } else {
        if (link.slice(-1) !== space) link += space; // прочие символы заменяем на space
    }
}
    document.getElementById("code").value = link;
}
<form name="form" method="post">
Название:<br>
<input name="name" type="text" id="name" onKeyUp="translit()" /><br>
Код для URL:<br>
<input name="code" type="text" id="code" />
</form>

Источник: https://ru.stackoverflow.com/questions/1328036/%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0-%D0%B2-%D0%BE%D0%B1%D0%B5-%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D1%8B

Тебе может это понравится...

Добавить комментарий