立即起作用的功能,将所有英文数字替换为阿拉伯数字

时间:2012-07-05 00:14:30

标签: javascript unicode arabic

我有这个功能

var map =
[
"&\#1632;","&\#1633;","&\#1634;","&\#1635;","&\#1636;",
"&\#1637;","&\#1638;","&\#1639;","&\#1640;","&\#1641;"
];

function getArabicNumbers(str)
{
    var newStr = "";

    str = String(str);

    for(i=0; i<str.length; i++)
    {
        newStr += map[parseInt(str.charAt(i))];
    }

    return newStr;
}

取自How can I view Arabic/Persian numbers in a HTML page with strict doctype?

此功能仅在您呼叫时在getArabicNumbers()的括号之间放置一些内容时才有效。

我想从文档的开头到结尾对文档应用此功能!我怎样才能做到这一点?在javascript中有可能吗?你推荐它吗?

使用javascript(在整页上不在字符串上)将英文数字替换为阿拉伯数字的任何其他方式?

1 个答案:

答案 0 :(得分:5)

您需要walk the DOM tree并使用getArabicNumbers为每个textnode调用replace

我可能会将getArabicNumbers函数更改为正则表达式;您需要做的就是匹配0-9,然后使用回调映射它。

修改 Here's a little fiddle我把它放在一起,为了它的乐趣,并展示我正在谈论的内容,虽然我对右到左部分有点不确定,但似乎工作得很完美......

<强> EDIT2: 噢哦......你甚至可以做without the map[] array