2014-05-19 19 views
2

我使用D3以可视化的数据,我用这个函数从阿拉伯数字的数字转换成数字印(1> 1)添加使用jQuery或逗号印度数字JS

function arNum(numb){ 
    var str  = numb.toString(); 
    var arabic = {"0" : '٠', "1": '١',"2": '٢',"3": '٣',"4": '٤',"5": '٥',"6": '٦',"7": '٧',"8": '٨',"9": '٩'}; 
    var chars = str.split(""); 
    var newnum = new Array(); 

    for (var i = 0; i < chars.length; i++) { 

     newnum[i] = arabic[ chars[i] ]; 
    } 

    return newnum.join(""); 
} 

,它是工作非常好,然后我想添加逗号分开数字,如1000到1000,但我需要它使用印度数字这样做1000

所以我用这个函数,它是在阿拉伯语号码123456789但不在印第安人号码上:

function commaSeparateNumber(val){ 
    while (/(\d+)(\d{3})/.test(val.toString())){ 
     val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2'); 
    } 
    return val; 
    } 

所以任何帮助请!

回答

0

您可以先将逗号加上阿拉伯数字,然后再转换为印度数字。

我在你的JSfiddle这里试过它http://jsfiddle.net/samehsubscription/F9zCK/,它工作正常。更新arNum功能象下面这样:

function arNum(numb){ 
    var str  = numb.toString(); 

    while (/(\d+)(\d{3})/.test(str.toString())){ 
     str = str.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2'); 
    } 

    var arabic = {"0" : '٠', "1": '١',"2": '٢',"3": '٣',"4": '٤',"5": '٥',"6": '٦',"7": '٧',"8": '٨',"9": '٩'}; 
    var chars = str.split(""); 
    var newnum = new Array(); 

    for (var i = 0; i < chars.length; i++) { 
     if(chars[i] == ",") newnum[i] = ","; 
     else 
     newnum[i] = arabic[ chars[i] ]; 
    } 

    return newnum.join(""); 
} 
+0

我试过的方法,但没有工作! – TheDarkCode

+0

查看编辑答案 –

+0

工作完美(Y):D thanx很多为你的帮助 – TheDarkCode

0

您可以根据您的要求使用此功能,或者该功能的ragex:

Number.prototype.NumberFormat = function (decimals, decPoint, thousandsSep) { 
    decPoint = typeof decPoint !== 'undefined' ? decPoint : '.'; 
    thousandsSep = typeof thousandsSep !== 'undefined' ? thousandsSep : ','; 

    var parts = this.toFixed(decimals).toString().split('.'); 
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSep); 

    return parts.join(decPoint); 
}; 

Just call 

val = val.toString().NumberFormat(2); 
+0

http://jsfiddle.net/samehsubscription/F9zCK/ 我试图在这里使用它,但它没有工作!所以我删除它,但如果你可以通过实现它的帮助,我会很感激你d.value是真正的数字,然后我使用arNum()函数转换它 – TheDarkCode