我正在研究音译脚本(将韩文音节转换成拉丁字母)。
问题是我的脚本只接受罗马字化“갈라”,“갈”或“라”。它不会转换为“갈라라”,“라갈”,“갈”,“라라”,“갈갈”等。
有没有人有办法解决吗?我真的很感激。
<script>
var hangul_syllable_to_roman2 = {
'갈라' : 'galla',
}
var hangul_syllable_to_roman = {
'갈' : 'gal',
'라' : 'ra',
}
function transliteration_hangul_to_roman(syllable) {
var roman2 = hangul_syllable_to_roman2[syllable];
var roman = hangul_syllable_to_roman[syllable];
if (roman2 || roman) {
return roman2 || roman;
}
else {
return syllable;
}
}
function afficher(form2) {
var testin = document.form2.entree.value;
document.form2.sortie.value=transliteration_hangul_to_roman(testin);
}
</script>
<div>
<FORM NAME="form2">
<textarea name="entree" value="input"></textarea>
<input type="button" name="bouton" value="Convertir" onClick="afficher(form2)">
<textarea name="sortie" value="output"></textarea>
</FORM>
</div>
最佳答案
您仅得到定义的两种情况,因为您没有遍历整个输入字符串。
试试这个(未经测试!):
function transliteration_hangul_to_roman(syllable)
{
var result = '', roman, roman2;
while (syllable.length > 0)
{
roman2 = hangul_syllable_to_roman2[syllable.substr(0,2)];
if (roman2)
{
result += roman2;
syllable = syllable.substr(2);
} else
{
roman = hangul_syllable_to_roman[syllable.substr(0,1)];
if (roman)
result += roman;
else
result += syllable.substr(0,1);
syllable = syllable.substr(1);
}
}
return result;
}
关于javascript - 韩语romanizer:并不能使所有内容都实现罗马化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19689153/