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 に答える