2014-11-01 56 views
0

我工作的韓國名稱的romanizer,我呆在這裏,因爲它是不是從一個簡單的音譯到B卻多了幾分複雜的一個:的Javascript的charAt不同的音譯一個字符串

通常名稱由3個音節組成(在JavaScript中識別爲3個字符),姓氏是第一個,通常後跟第一個名稱,包括2(或不多於1個)音節。

不幸的是,姓氏和名字並不總是具有相同的羅馬化,我需要在名字的兩個音節之間加上「-」。

一些具體的(和人工)的例子:

  • 김김김 - >金GIM-GIM
  • 이이김 - >李I-GIM
  • 이김야 - >李GIM亞

要操作的三個音節(字)之間的區別,並設法使它們看起來,我寫了下面的代碼:

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

編輯:問題是我只設法讓韓國人未轉換。任何人都可以告訴我如何改正這一點?

預先感謝您!

+1

不要介意音譯部分:您將* innerHTML替換爲每個下一個新片段。在寫入'demo'之前將字符串添加到一起。 – usr2564301 2014-11-01 11:14:28

+0

現在好多了,謝謝 – user2911849 2014-11-01 11:27:42

回答

1

我想你想要的是:

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

,你不需要transliteration功能。

+0

這就是我一直在尋找的,但我不知道爲什麼它仍然不會轉換韓文字符 - > http://jsfiddle.net/LGRAq/3/ – user2911849 2014-11-01 15:39:57

+1

像這樣:http ://jsfiddle.net/LGRAq/4/既然你使用了'blur'事件,你必須點擊輸入文本,然後點擊其他地方。你可以刪除'separation()'。 – 2014-11-01 16:12:24

+0

非常感謝 – user2911849 2014-11-03 19:39:42

相關問題