1

我有这个功能

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将英文数字替换为阿拉伯数字的任何其他方式(在整个页面上而不是在字符串上)?

4

1 回答 1

5

您需要遍历 DOM 树并将每个 textnode 调用替换为 getArabicNumbers。

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

编辑: 这是我为了好玩而拼凑起来的一个小小提琴,并展示了我在说什么,虽然我对从右到左的部分有点不确定,但它似乎工作得很好......

Edit2: D'oh... 你甚至可以不用 map[] array

于 2012-07-05T00:21:20.443 回答