Console.log
显示正确的结果,但如何在输入时为输入类型添加相同的格式。
输入类型在每个逗号后重置为零。
1000到1,000
请帮助。
此代码正常运作here
function numberWithCommas(number) {
if (isNaN(number)) {
return '';
}
var asString = '' + Math.abs(number),
numberOfUpToThreeCharSubstrings = Math.ceil(asString.length / 3),
startingLength = asString.length % 3,
substrings = [],
isNegative = (number < 0),
formattedNumber,
i;
if (startingLength > 0) {
substrings.push(asString.substring(0, startingLength));
}
for (i=startingLength; i < asString.length; i += 3) {
substrings.push(asString.substr(i, 3));
}
formattedNumber = substrings.join(',');
if (isNegative) {
formattedNumber = '-' + formattedNumber;
}
document.getElementById('test').value = formattedNumber;
}
&#13;
<input type="number" id="test" class="test" onkeypress="numberWithCommas(this.value)">
&#13;
答案 0 :(得分:0)
在这里查看我的小提琴http://jsfiddle.net/6cqn3uLf/ 你需要另一个正则表达式来限制数字,但这将根据用户的语言环境进行格式化 - 这在这里可能是有利的。
for line in f:
line = line.strip()
if len(line) > 0:
l.append([int(a) for a in line.split()])
print(l)
$(function () { $('#btnformat').on('input propertychange paste', function () { var x = $('#btnformat').val(); $('#btnformat').val(Number(x.replace(/,/g,'')).toLocaleString()); }); });
答案 1 :(得分:0)
function numberWithCommas(x) {
var real_num = x.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
console.log(real_num);
document.getElementById('test').value = real_num;
}
<input type="number" id="test" onkeypress="numberWithCommas(this.value)">
答案 2 :(得分:0)
一些注意事项:
我有一个解决方案,用3个字符替换3个字符的正则表达式加上逗号:
var x = "1234567";
x.replace(/.../g, function(e) { return e + ","; } );
// Gives: 123,456,7
即。几乎是正确的答案,但逗号不在正确的位置。所以让我们用String.prototype.reverse()
函数修复它:
String.prototype.reverse = function() {
return this.split("").reverse().join("");
}
function reformatText() {
var x = document.getElementById('test').value;
x = x.replace(/,/g, ""); // Strip out all commas
x = x.reverse();
x = x.replace(/.../g, function(e) { return e + ","; } ); // Insert new commas
x = x.reverse();
x = x.replace(/^,/, ""); // Remove leading comma
document.getElementById('test').value = x;
}
<input id="test" class="test" onkeyup="reformatText()">
答案 3 :(得分:0)
如果jquery不是您的应用程序的开销,那么您可以使用 https://code.google.com/p/jquery-numberformatter/