如何设置数字的格式
12345678
<span>12</span>
<span>345</span>
<span>678</span>
与Javascript?
点击运行代码片段…查看结果
function numberToHtml(n) {
function createSpan(n) {
var span = document.createElement('span');
span.textContent = n;
return span;
}
function iter(n, container) {
if (n === '') return container;
container.insertBefore(createSpan(n.slice(-3)), container.firstChild);
return iter(n.slice(0,-3), container);
}
return iter(String(n), document.createDocumentFragment());
}
document.body.appendChild(numberToHtml(12345678));
span {
border: 1px solid red;
padding: 3px;
margin: 3px;
}
您可以像这样在每000处添加逗号:
function commaSeparateNumber(val){
while (/(d+)(d{3})/.test(val.toString())){
val = val.toString().replace(/(d+)(d{3})/, '$1'+','+'$2');
}
return val;
}
然后像这样调用这个函数
var orig_number = 12345678;
var formatted_number = commaSeparateNumber(orig_number);
或者你可以这样做:
$(document).ready(function(){
$('input.number').keyup(function(event) {
// format number
$(this).val(function(index, value) {
return value
.replace(/D/g, '')
.replace(/B(?=(d{3})+(?!d))/g, ",")
;
});
});
});
一系列的除法/模数应该能让你得到碎片。
例如:var x = 12345678;
var hund = parseInt(x / 1 ) % 1000; // 678
var thou = parseInt(x / 1000 ) % 1000; // 345
var mill = parseInt(x / 1000000) % 1000; // 12
可以泛化并循环检查结果何时为0