Транслит текста на JavaScript
Данный скрипт позволяет переводить предложения из киррилицы в транслит. Это нужно, например для формирования ссылки на товар в интернет-магазине.
Код:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=">
<title>Hello</title>
</head>
<body>
<input type="text" id="trText" value="" />
<div id="result"></div>
<script>
let el = document.querySelector("#trText");
let res = document.querySelector("#result");
el.addEventListener('keyup', e => {
res.textContent = transliter(e.target.value)
})
</script>
</body>
</html>
Скрипт:
function transliter( str ) {
const ru = {
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd',
'е': 'e', 'ё': 'e', 'ж': 'j', 'з': 'z', 'и': 'i',
'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o',
'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u',
'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh',
'щ': 'shch', 'ы': 'y', 'э': 'e', 'ю': 'u', 'я': 'ya', ' ': '-'
},
n_str = [],
len = str.length;
str = str.replace(/[ъь]+/g, '').replace(/й/g, 'i');
for ( let i = 0; i < length; ++i ) {
n_str.push(
ru[ str[i] ]
|| ru[ str[i].toLowerCase() ] == undefined && str[i]
|| ru[ str[i].toLowerCase() ].replace(/^(.)/, function ( match ) { return match.toUpperCase() })
);
}
return n_str.join('');
}
Рабочий пример кода по ссылке
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.