如何动态删除阿拉伯语变音符号
我正在设计一本电子书“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/

10-11 11:53