如何动态删除阿拉伯语变音符号
我正在设计一本电子书“chm”,并且包含多个包含阿拉伯文本的html页面
但有一段时间搜索引擎想要突出显示一些
阿拉伯语单词是因为它的变音符号,因此在页面加载时可以使用JavaScript功能剥离阿拉伯语变音符号文字吗?
但必须具有再次启用的选项,所以我
不想从物理上将其从HTML中删除,而是暂时的,
事情是我不知道从哪里开始,什么是正确的功能使用
谢谢你 :)
例如
Text : الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ
converted to : الحمد لله رب العالمين
最佳答案
试试这个
Text : الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ
converted to : الحمد لله رب العالمين
http://www.suhailkaleem.com/2009/08/26/remove-diacritics-from-arabic-text-quran/
该代码是C#而不是javascript。
仍在尝试找出如何在javascript中实现此目标
编辑:显然,这在javascript中非常容易。泛音符号存储为单独的“字母”,可以很容易地将其删除。
var CHARCODE_SHADDA = 1617;
var CHARCODE_SUKOON = 1618;
var CHARCODE_SUPERSCRIPT_ALIF = 1648;
var CHARCODE_TATWEEL = 1600;
var CHARCODE_ALIF = 1575;
function isCharTashkeel(letter)
{
if (typeof(letter) == "undefined" || letter == null)
return false;
var code = letter.charCodeAt(0);
//1648 - superscript alif
//1619 - madd: ~
return (code == CHARCODE_TATWEEL || code == CHARCODE_SUPERSCRIPT_ALIF || code >= 1612 && code <= 1631); //tashkeel
}
function stripTashkeel(input)
{
var output = "";
//todo consider using a stringbuilder to improve performance
for (var i = 0; i < input.length; i++)
{
var letter = input.charAt(i);
if (!isCharTashkeel(letter)) //tashkeel
output += letter;
}
return output;
}
编辑:这是使用BuckData http://qurandev.github.com/的另一种方法
关于javascript +动态删除变音符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5224267/