【发布时间】:2017-04-29 18:10:22
【问题描述】:
我希望能够将名字音译成不同的语言。我从亚美尼亚语开始。
我的html是这样的:
<input type="text" class="name"></input><br>
<p class="transliterated"></p>
<button id="button">transliterate!</button>
我的 javascript 是这样的:
var buttonEl = document.getElementById("button");
buttonEl.addEventListener("click", getArmenian);
function getArmenian() {
var inputEl = document.getElementsByClassName("name");
var outputEl = document.getElementsByClassName("transliterated");
for (var i = 0; i < inputEl.length; i++) {
var nameEl = inputEl[i].value;
var ayb = 'ա';
var ben = 'բ';
var nameEl = nameEl.replace(/a/gi, ayb);
var nameEl = nameEl.replace(/b/gi, ben);
outputEl[i].innerHTML = nameEl;
}
}
在上面的示例中,我选择了字母 a 和 b,并将它们分别替换为亚美尼亚字符 'ayb' 和 'ben'。
到目前为止一切顺利。
泡菜从这里开始:我已经为亚美尼亚字母表中的所有字母定义了变量,就像我为“ayb”所做的那样,我使用替换来替换英文字母表中的各个字母。在这一点上,这不是一个复杂的音译。
“x”是有问题的,因为每个代码都包含一个“x”,所以我只需先搜索并替换“x”,这个小问题就解决了。
但是这个东西在搜索时不区分'r'和'R'。我该如何解决?现在,如果我音译“Rob”,它会给我 'ռ + օ + բ' 我很满意,但我没有有意对其进行编程以识别首都字母“R”。
一旦我这样做了,我该如何防止这个东西替换 'ռ' 中的 'C',即字母 'ra'?
【问题讨论】:
-
从你的模式中删除 i。 /a/g 和 /b/g
标签: javascript html unicode