Я пытаюсь создать функцию, которая будет принимать символ, являющийся значением клавиши, нажатой на клавиатуре, преобразовывать его в другой специальный символ и вставлять в определенное поле ввода (что-то вроде имитации другой раскладки клавиатуры).
Пример:
- Введите x на клавиатуре
- Функция берет этот символ и преобразует его в ḫ
- Чем функция вставляет этот символ в определенное поле ввода
Я сделал функцию, которая преобразует эти специальные символы:
$("input").keydown(function(e){
var keyCharacter = e.key;
});
var replaceFrom = [/A/, /i/, /a/, /s/, /z/, /S/, /q/, /H/, /x/, /X/, /T/, /D/];
var replaceTo = ["ꜣ", "j", "ꜥ", "s", "z", "š", "q", "ḥ", "ḫ", "ẖ", "ṯ", "ḏ"];
function transliterationConverter(user_input, transliteration_schema_to_replace, transliteration_schema_for_replace) {
for (i = 0; i < transliteration_schema_to_replace.length; i++) {
user_input = user_input.replace(new RegExp(transliteration_schema_to_replace[i], "g"), transliteration_schema_for_replace[i]);
}
return user_input;
}
var convertedKeyCharacter = transliterationConverter(keyCharacter, replaceFrom, replaceTo);
// Character typed by user: x
// Desired result in input field: ḫ
P.S. Меня не устраивает решение, которое включает в себя получение значения из поля ввода, а затем преобразование его символов в другие, потому что, если это произойдет, пользователь может увидеть «процесс преобразования», который происходит за полсекунды.