Я работаю на romanizer для корейских имен и я застрял здесь, потому что это не просто транслитерация от А до Б, но немного более сложный:Javascript Шар для различной транслитерации в одной строке
обычно имена сделаны из 3 слогов (признаваемых 3 символов в JavaScript), фамилия является первым один, и это, как правило, сопровождается первым именем, состоящим в 2 (или реже 1) слогов.
К сожалению, фамилии и имена не всегда имеют одинаковую латанизацию, и мне нужно поставить «-» между двумя слогами по имени.
Некоторые из бетона (искусственные) примеры:
- 김 김김 -> Ким Гим-гим
- 이이 김 -> Lee I-гим
- 이김 야 -> Ли Гим-я
для работы различия между тремя слогами (символы) и попытаться сделать их, я написал следующий код:
<!DOCTYPE html>
<html>
<body>
<script>
function separation() {
var str = document.getElementById("ttt").value;
var res1 = str.charAt(0);
var res2 = str.charAt(1);
var res3 = str.charAt(2);
document.getElementById("demo").innerHTML = res1+res2+res3;
}
var syllable_1 = {
'김' : 'Kim ',
'이' : 'Lee ',
'야' : 'Ya',
}
var syllable_2 = {
'김' : 'Gim',
'이' : 'I',
'야' : 'Ya',
}
var syllable_3 = {
'김' : '-gim',
'이' : '-i',
'야' : '-ya',
}
function hangul_to_roman(hangul) {
return syllable_1[hangul.charAt(0)] + syllable_2[hangul.charAt(1)] + (hangul.length >= 3 ? syllable_3[hangul.charAt(2)] : "");
}
</script>
<input type="text" id="ttt" value="김김이" onBlur="separation()">
<p id="demo"></p>
</body>
</html>
РЕДАКТИРОВАТЬ: Проблема в том, что я могу получить корейский неконвертированный. Может ли кто-нибудь сказать мне, как исправить это?
Заранее благодарю вас!
Не обращайте внимания на часть транслитерации: вы * заменяете * innerHTML каждым следующим новым фрагментом. Добавьте строки вместе, прежде чем записывать их в 'demo'. – usr2564301
теперь лучше спасибо – user2911849