一个字符串中不同音译的Javascript字符

一个字符串中不同音译的Javascript字符,javascript,transliteration,charat,Javascript,Transliteration,Charat,我正在为韩国人的名字编写一个罗马字母,我被困在这里,因为它不是从a到B的简单音译,而是更复杂的一个: 通常名称由3个音节组成(在JavaScript中被识别为3个字符),姓氏是第一个,后面通常有一个名字,由2个音节组成(或更少的时候是1个音节) 不幸的是,姓氏和名字并不总是有相同的罗马拼音,我需要在名字的两个音节之间加一个“-” 一些具体(和人工)例子: 김김김 -> 金金吉 이이김 -> 李一金 이김야 -> 李金雅 为了在三个音节(字符)之间进行区分并使它们出现,我编写了以下代码: &l

我正在为韩国人的名字编写一个罗马字母,我被困在这里,因为它不是从a到B的简单音译,而是更复杂的一个:

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

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

一些具体(和人工)例子:

  • 김김김 -> 金金吉
  • 이이김 -> 李一金
  • 이김야 -> 李金雅
为了在三个音节(字符)之间进行区分并使它们出现,我编写了以下代码:

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

函数分离(){
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;
}
变量音节_1={
'김' : '金,,
'이' : '李,,
'야' : '是,,
} 
变量音节_2={
'김' : 'Gim',
'이' : '我,,
'야' : '是,,
} 
变量音节_3={
'김' : '-gim',
'이' : '-我,,
'야' : '-是,,
}
功能韩语到罗马语(韩语){
返回音节_1[hangul.charAt(0)]+音节_2[hangul.charAt(1)]+(hangul.length>=3?音节_3[hangul.charAt(2)]:“”);
}

编辑:问题是我只是设法让韩国人无法改变。谁能告诉我怎么纠正这个问题吗


提前谢谢你

我想你想要的是:

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

而且您不需要
音译
函数。

更不用说音译部分:您正在用下一个新片段替换innerHTML。在将其写入
demo
之前,先将字符串添加到一起。现在更好了,谢谢。这是我一直在寻找的,但我不知道为什么它仍然不能转换韩文字符->如下所示:由于使用
blur
事件,您必须单击输入文本,然后单击其他地方。您可以删除
分离()