【问题标题】:Javascript charAt for different transliterations in one stringJavascript charAt 用于一个字符串中的不同音译
【发布时间】:2014-11-01 11:10:17
【问题描述】:

我正在为韩语名字写一个罗马字母,我被困在这里,因为它不是从 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>

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

提前谢谢你!

【问题讨论】:

  • 别管音译部分:您正在用每个下一个新片段替换 innerHTML。在将字符串写入 demo 之前将其添加在一起。
  • 现在好多了,谢谢

标签: javascript transliteration charat


【解决方案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 函数。

【讨论】:

  • 这是我要找的,但我不知道为什么它仍然不能转换韩文字符 -> jsfiddle.net/LGRAq/3
  • 像这样:jsfiddle.net/LGRAq/4 由于您使用blur 事件,您必须单击输入文本,然后单击其他位置。你可以删除separation()
猜你喜欢
  • 1970-01-01
  • 2015-06-02
  • 2013-11-14
  • 1970-01-01
  • 2014-05-11
  • 2012-11-21
  • 2020-02-05
  • 2013-11-09
  • 1970-01-01
相关资源
最近更新 更多