0

我正在为韩语名字做罗马字,我被困在这里,因为它不是从 A 到 B 的简单音译,而是更复杂一点:

通常名称由3 个音节组成(在 JavaScript 中被识别为3 个字符),姓氏是第一个,后面通常是由2 个(或较少见的 1 个)音节组成的名字。

不幸的是,姓氏和名字并不总是具有相同的罗马字母,我需要在名字的两个音节之间加一个“ - ”。

一些具体(和人为)的例子:

  • 김김김 -> 金金金
  • 이이김 -> Lee I-gim
  • 이김야 -> Lee Gim-ya

为了对三个音节(字符)进行区分并尝试使它们出现,我编写了以下代码:

<!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>

编辑:问题是我只能设法让韩语没有皈依。谁能告诉我如何纠正这个问题?

先感谢您 !

4

1 回答 1

1

I think what you want is :

function hangul_to_roman(hangul) {
    return syllable_1[hangul.charAt(0)] + syllable_2[hangul.charAt(1)] + ( hangul.length >= 3 ? syllable_3[hangul.charAt(2)] : "" );
}

and you don't need the transliteration functions.

于 2014-11-01T11:41:44.443 回答