JavaScript:用另一个字符替换一组字符

JavaScript:用另一个字符替换一组字符,javascript,arrays,string,replace,Javascript,Arrays,String,Replace,我有一个由拉丁语和柏柏尔语字符串组成的多维数组,我想用作替换输入数据的参考: var alphabet = Array ( Array( 'a', 'ⴰ' ), Array( 'b', 'ⴱ' ), Array( 'g', 'ⴳ' ), Array( 'gw', 'ⴳⵯ' ), Array( 'd', 'ⴷ' ), Array( 'ḍ', 'ⴹ' ), Array( 'e', 'ⴻ' ), Array( 'f', 'ⴼ' ), Array( 'k', 'ⴽ' ), Array( 'kw', '

我有一个由拉丁语和柏柏尔语字符串组成的多维数组,我想用作替换输入数据的参考:

var alphabet = Array (  Array( 'a', 'ⴰ' ), Array( 'b', 'ⴱ' ), Array( 'g', 'ⴳ' ), Array( 'gw', 'ⴳⵯ' ), Array( 'd', 'ⴷ' ), Array( 'ḍ', 'ⴹ' ), Array( 'e', 'ⴻ' ), Array( 'f', 'ⴼ' ), Array( 'k', 'ⴽ' ), Array( 'kw', 'ⴽⵯ' ), Array( 'h', 'ⵀ' ), Array( 'ḥ', 'ⵃ' ), Array( 'ɛ', 'ⵄ' ), Array( 'x', 'ⵅ' ), Array( 'q', 'ⵇ' ), Array( 'i', 'ⵉ' ), Array( 'j', 'ⵊ' ), Array( 'l', 'ⵍ' ), Array( 'm', 'ⵎ' ), Array( 'n', 'ⵏ' ), Array( 'u', 'ⵓ' ), Array( 'r', 'ⵔ' ), Array( 'ṛ', 'ⵕ' ), Array( 'ɣ', 'ⵖ' ), Array( 's', 'ⵙ' ), Array( 'ṣ', 'ⵚ' ), Array( 'c', 'ⵛ' ), Array( 't', 'ⵜ' ), Array( 'ṭ', 'ⵟ' ), Array( 'w', 'ⵡ' ), Array( 'Y', 'ⵢ' ), Array( 'z', 'ⵣ' ), Array( 'ẓ', 'ⵥ' ) );                    

var word = $("input[name=word]").val();

var word_split = word.split("");

var tifinaghized = '';

for (var i = 0; i < word_split.length; i++)
{
    tifinaghized += word.replace(word_split, alphabet[i][1]);
}

$("span.generated_tifinaghe").html( tifinaghized );
var alphabet=数组(数组('a','ⴰ' ), 数组('b','ⴱ' ), 数组('g','ⴳ' ), 阵列('gw','ⴳⵯ' ), 数组('d','ⴷ' ), 数组('ḍ', 'ⴹ' ), 数组('e','ⴻ' ), 数组('f','ⴼ' ), 数组('k','ⴽ' ), 阵列('kw','ⴽⵯ' ), 数组('h','ⵀ' ), 数组('ḥ', 'ⵃ' ), 数组('ɛ','ⵄ' ), 数组('x','ⵅ' ), 数组('q','ⵇ' ), 数组('i','ⵉ' ), 数组('j','ⵊ' ), 数组('l','ⵍ' ), 数组('m','ⵎ' ), 数组('n','ⵏ' ), 数组('u','ⵓ' ), 数组('r','ⵔ' ), 数组('ṛ', 'ⵕ' ), 数组('ɣ','ⵖ' ), 数组('s','ⵙ' ), 数组('ṣ', 'ⵚ' ), 数组('c','ⵛ' ), 数组('t','ⵜ' ), 数组('ṭ', 'ⵟ' ), 数组('w','ⵡ' ), 数组('Y','ⵢ' ), 数组('z','ⵣ' ), 数组('ẓ', 'ⵥ' ) );                    
var word=$(“输入[name=word]”).val();
var word_split=word.split(“”);
变量tifinaghized=“”;
对于(变量i=0;i
因此,如果用户键入“a”,则应替换为它的柏柏尔表示形式”ⴰ". 这将仅替换第一个字符,而不是整个输入数据。 如何将字母表数组中的拉丁字符替换为同一字母表数组中的拉丁字符对

PS;如果你看到正方形,这是正常的。

如果你改变:

 tifinaghized += word.replace(word_split, alphabet[i][1]);
使用:


g将查找所有实例。

您需要使用一个带有全局选项集的正则表达式来替换所有实例。但是,您也可以稍微简化此代码并摆脱循环。使用对象代替数组:

var alphabet = {
    'a': 'ⴰ',
    'b': 'ⴱ',
    'g': 'ⴳ',
    'gw': 'ⴳⵯ',
    'd': 'ⴷ',
    'ḍ': 'ⴹ',
    ...
    'z': 'ⵣ',
    'ẓ': 'ⵥ'
};
然后使用带有替换函数的正则表达式:

var word = $("input[name=word]").val();
var tifinaghized = word.replace(/[abgdḍefkhḥɛxqijlmnurṛɣsṣctṭwYzẓ]|gw|kw/g, function(s) {
    return alphabet[s];
});
工作演示:

var word = $("input[name=word]").val();
var tifinaghized = word.replace(/[abgdḍefkhḥɛxqijlmnurṛɣsṣctṭwYzẓ]|gw|kw/g, function(s) {
    return alphabet[s];
});