JavaScript:将一组字符替换为另一组字符
我有一个由拉丁语和柏柏尔字符串组成的多维数组,我想将其用作替换输入数据的参考:
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 );
因此,如果用户键入“a”,则应将其替换为它的柏柏尔表示形式“ⴰ”。这仅替换第一个字符,而不替换整个输入数据。 如何用同一字母数组中的拉丁字符对替换字母数组中的拉丁字符?
附注;如果你看到方块,那是正常的。
I have a multidimentional array composed of latin and Berber strings that I want to use as a reference to replace input data:
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 );
So if the user types "a" it should be replaced by the berber representation of it "ⴰ". This replaces only the first character but not the whole input data.
How could I replace the Latin characters in the alphabet array with their pairs on the same alphabet array?
PS; if you see squares it's normal.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用带有全局选项集的正则表达式来替换所有实例。但是,您也可以稍微简化此代码并摆脱循环。使用对象代替数组:
然后使用带有替换函数的正则表达式:
工作演示:http://jsfiddle.net/gilly3/ MdF6R/
You need to use a regular expression with the global option set to replace all of the instances. But, you can also simplify this code a bit and get rid of the loop. Instead of Arrays, use an object:
Then use a regular expression with a replacement function:
Working demo: http://jsfiddle.net/gilly3/MdF6R/
如果您更改:
使用正则表达式:
g 将查找所有出现的情况。
If you change:
to use regular expressions:
the g will find all occurrences.