我需要将一个数字分成几组数字,然后将这些数字放入一个数组中。然后我将对这些数字进行一些简单的数学运算,然后将它们插入到文本框中。
到目前为止,我只找到了如何将数字拆分为单独的数字,如下所示:
var number = 12354987,
output = [],
sNumber = number.toString();
for (var i = 0, len = sNumber.length; i < len; i += 1) {
output.push(+sNumber.charAt(i));
}
console.log(output);
您可以使用正则表达式来获得您想要的结果。
如果你想从左开始分组,正则表达式非常简单:
// assuming you want to group every 3 digits
var number = 12354987,
output = number.toString().match(/\d{1,3}/g);
// output: ["123", "549", "87"]
相反,如果您想从右侧开始,例如与货币格式一样,正则表达式需要更加清晰:
var number = 12354987,
output = number.toString().match(/(\d+?)(?=(\d{3})+(?!\d)|$)/g);
// output: ["12", "354", "987"]
您可以更改要分组的位数,只需替换3
inside \d{3}
与所需的金额。您还可以从变量获取此类值,在这种情况下您必须使用正则表达式构造函数 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp构建您的正则表达式实例。
Edit:要转换output
再次到数字你可以使用数组映射法 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map如下:
var numbers = output.map(Number);
希望能帮助到你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)