使用 Javascript 以印度格式显示数字

新手上路,请多包涵

我有以下代码要在印度编号系统中显示。

  var x=125465778;
 var res= x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

我得到这个输出: 125,465,778

我需要这样的输出: 12,54,65,778

请帮我解决这个问题。

原文由 tilak 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 435
2 个回答

对于整数:

     var x=12345678;
    x=x.toString();
    var lastThree = x.substring(x.length-3);
    var otherNumbers = x.substring(0,x.length-3);
    if(otherNumbers != '')
        lastThree = ',' + lastThree;
    var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;
    alert(res);

现场演示

对于浮动:

     var x=12345652457.557;
    x=x.toString();
    var afterPoint = '';
    if(x.indexOf('.') > 0)
       afterPoint = x.substring(x.indexOf('.'),x.length);
    x = Math.floor(x);
    x=x.toString();
    var lastThree = x.substring(x.length-3);
    var otherNumbers = x.substring(0,x.length-3);
    if(otherNumbers != '')
        lastThree = ',' + lastThree;
    var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree + afterPoint;

    alert(res);

现场演示

原文由 Prasath K 发布,翻译遵循 CC BY-SA 4.0 许可协议

我来晚了,但我想这会有所帮助:)

你可以使用 Number.prototype.toLocaleString()

句法

numObj.toLocaleString([locales [, options]])

 var number = 123456.789;
// India uses thousands/lakh/crore separators
document.getElementById('result').innerHTML = number.toLocaleString('en-IN');
// → 1,23,456.789

document.getElementById('result1').innerHTML = number.toLocaleString('en-IN', {
    maximumFractionDigits: 2,
    style: 'currency',
    currency: 'INR'
});
// → ₹1,23,456.79
 <div id="result"></div>
<div id="result1"></div>

原文由 Tushar Gupta - curioustushar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题