2

我想将拉丁数字更改为波斯数字并添加逗号,但这对我来说不起作用。我该怎么办?

演示:
请看我的演示,输出&#1,782;&#1,783;&#1,783;&#1,782;&#1,781;&#1,781;&#1,782;&#1,783;&#1,783;&#1,784;&#1,784;&#1,785;&#1,785;&#1,784;&#1,783;&#1,784;&#1,780;&#1,776;&#1,784;&#1,776;不是正确的数字。

function numentofa(n) {
var digits = [],
    r;
do {
    r = n % 10;
    n = (n - r) / 10;
    digits.unshift(['&#', r + 1776, ';'].join(''));
} while (n > 0);
return digits.join('');
}
function addCommas(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}
var oooook = addCommas(numentofa(67765567788998776676));
//$('.numbers').append(oooook);
    alert(oooook);​
4

1 回答 1

4

不要使用 HTML 字符代码,而是使用实际字符:

digits.unshift(String.fromCharCode(r+1776));

而不是对数字进行正则表达式,而是将其推广到任何非逗号字符:

var rgx = /([^,]+)([^,]{3})/;

更新小提琴

于 2012-08-31T19:19:41.750 回答