回答
更新(7年後)
參考在引用下面的原始答案是錯誤的。有是一個內置的功能這一點,而這正是kaiser以下建議:toLocaleString
所以,你可以這樣做:實施以下工程
(1234567.89).toLocaleString('en') // for numeric input
parseFloat("1234567.89").toLocaleString('en') // for string input
的功能,太多,但根本沒有必要。
(我想也許我會得到幸運,發現它必要早在2010年,但沒有。根據這一more reliable reference,的toLocaleString自ECMAScript的第三版[1999],已經成爲標準的一部分我相信,意味着它會一直早在IE 5.5的支持。)
原來的答案
根據this reference沒有內置的功能添加逗號的數字。但是,頁面包括如何自行編碼它的一個例子:
function addCommas(nStr) {
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
編輯: 要轉到另一條路(字符串轉換與逗號號),你可以做這樣的事情:
parseFloat("1,234,567.89".replace(/,/g,''))
PHP.js有一個功能可以做到這一點,稱爲number_format。如果您熟悉PHP,它的工作原理是exactly the same way。
第一個鏈接跟在JS實現之後的PHP版本。這很有用。 – 2014-04-08 15:11:58
// thousand separates a digit-only string using commas
// by element: onkeyup = "ThousandSeparate(this)"
// by ID: onkeyup = "ThousandSeparate('txt1','lbl1')"
function ThousandSeparate()
{
if (arguments.length == 1)
{
var V = arguments[0].value;
V = V.replace(/,/g,'');
var R = new RegExp('(-?[0-9]+)([0-9]{3})');
while(R.test(V))
{
V = V.replace(R, '$1,$2');
}
arguments[0].value = V;
}
else if (arguments.length == 2)
{
var V = document.getElementById(arguments[0]).value;
var R = new RegExp('(-?[0-9]+)([0-9]{3})');
while(R.test(V))
{
V = V.replace(R, '$1,$2');
}
document.getElementById(arguments[1]).innerHTML = V;
}
else return false;
}
如果是關於本地化千位分隔符,分隔符和小數點分隔符,去與以下內容:
// --> numObj.toLocaleString([locales [, options] ])
parseInt(number).toLocaleString();
有幾個選項,你可以使用(甚至與回退語言環境):
number = 123456.7089;
result = parseInt(number).toLocaleString() + "<br>";
result += number.toLocaleString('de-DE') + "<br>";
result += number.toLocaleString('ar-EG') + "<br>";
result += number.toLocaleString('ja-JP', {
style : 'currency',
currency : 'JPY',
currencyDisplay : 'symbol',
useGrouping : true
}) + "<br>";
result += number.toLocaleString([ 'jav', 'en' ], {
localeMatcher : 'lookup',
style : 'decimal',
minimumIntegerDigits : 2,
minimumFractionDigits : 2,
maximumFractionDigits : 3,
minimumSignificantDigits : 2,
maximumSignificantDigits : 3
}) + "<br>";
var el = document.getElementById('result');
el.innerHTML = result;
<div id="result"></div>
關於MDN info page的詳細信息。
編輯:評註@I like Serena增加了以下內容:
要支持的瀏覽器使用非英語語言環境,我們仍然希望英語格式,使用
value.toLocaleString('en')
。也適用於浮點。
我只能說哇。美麗。 – pimbrouwers 2014-03-03 20:59:32
+1不重新發明車輪。 – 2014-03-20 14:18:01
假設瀏覽器的語言環境始終是你想要的... – sibidiba 2014-04-15 11:09:27
試圖與一個正則表達式(不回調)來處理這個我目前的能力失敗我缺少一個負的在Javascript向後看...從來沒有少這裏的另一個在大多數作品簡潔替代一般情況 - 通過忽略匹配索引出現在句點索引之後的匹配來計算任意小數點。
function format(num){
var n = num.toString(), p = n.indexOf('.');
return n.replace(/\d(?=(?:\d{3})+(?:\.|$))/g, function($0, i){
return p<0 || i<p ? ($0+',') : $0;
});
}
測試用例:
format(100) // "100"
format(1000) // "1,000"
format(1e10) // "10,000,000,000"
format(1000.001001) // "1,000.001001"
此語法圖是否已在regex101.com上創建? – 2017-04-19 23:26:36
@GeroldBroser https://regexper.com – Emissary 2017-04-20 05:46:02
有一個不錯的jQuery插件數量:https://github.com/teamdf/jquery-number
它允許就是你改變你喜歡的格式的任何號碼,與十進制數字選項和分隔符小數和千:
$.number(12345.4556, 2); // -> 12,345.46
$.number(12345.4556, 3, ',', ' ') // -> 12 345,456
你可以用它直接輸入字段,這是更好的內部,採用與上述相同的選項:
$("input").number(true, 2);
,也可以使用選擇應用到整個組DOM元素:
$('span.number').number(true, 2);
我不喜歡任何這裏的答案,所以我創建了一個功能,使得w爲我而言。只是想分享,以防其他人發現它有用。
function getFormattedCurrency(num) {
num = num.toFixed(2)
var cents = (num - Math.floor(num)).toFixed(2);
return Math.floor(num).toLocaleString() + '.' + cents.split('.')[1];
}
我用這個:
function numberWithCommas(number) {
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
來源:link
''123452343267.0505'.replace(/ \ B(?=(\ d {3})+(?!\ d))/ g,「,」); 「123,452,343,267.0,505」' - 注意小數點後面的逗號。 – hippietrail 2017-10-03 00:53:34
所有你需要做的就是真的this:
123000.9123.toLocaleString()
//result will be "123,000.912"
不幸的是它取決於你的平臺。有一些''toLocaleString()'不添加逗號,或缺少標準中的其他功能。很容易檢查'toLocaleString'的存在,但不檢查其符合性。 – hippietrail 2017-10-03 00:56:04
您可以使用JavaScript。下面是代碼,它只會accept
數字和一個dot
這裏是JavaScript
<script >
function FormatCurrency(ctrl) {
//Check if arrow keys are pressed - we want to allow navigation around textbox using arrow keys
if (event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 39 || event.keyCode == 40) {
return;
}
var val = ctrl.value;
val = val.replace(/,/g, "")
ctrl.value = "";
val += '';
x = val.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
ctrl.value = x1 + x2;
}
function CheckNumeric() {
return event.keyCode >= 48 && event.keyCode <= 57 || event.keyCode == 46;
}
</script>
HTML
<input type="text" onkeypress="return CheckNumeric()" onkeyup="FormatCurrency(this)" />
number = 123456.7089;
result = parseInt(number).toLocaleString() + "<br>";
result = number.toLocaleString('pt-BR') + "<br>";
var el = document.getElementById('result');
el.innerHTML = result;
<div id="result"></div>
您可以添加一些描述以便op和其他人可以理解此代碼如何實際解決問題。謝謝 – 2017-09-26 13:58:37
var number = 35002343;
console.log(number.toLocaleString());
的參考,你可以點擊這裏 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
- 1. 格式千位分隔符
- 2. 千位分隔符格式字符串與浮游
- 3. kendoNomeric格式不帶千位分隔符
- 4. 在iPython中設置千位分隔符,而不使用字符串格式
- 5. 使用千位分隔符的空格
- 6. QSpinBox千位分隔符
- 7. 千位分隔符在Python
- 8. 千位分隔符printf
- 9. Apache poi - 千位分隔符
- 10. 使用千位分隔符格式化數字Smarty PHP
- 11. 「編輯文本和TextView」格式與千位分隔符(,)在android
- 12. 如何在Arduino上格式化長添加千位分隔符
- 13. 格式ItemTemplate GridView錢項目到千位分隔符ASP.NET?
- 14. Inno設置格式與千位分隔符
- 15. 在整個文檔中格式化整數千位分隔符
- 16. 千分隔符php
- 17. NSNumberFormatter千分隔符
- 18. 千位分隔符在數字格式化後不應該允許使用小數點分隔符
- 19. ExtJs NumberField使用千位分隔符
- 20. .Net/F中的千位分隔符#
- 21. 刪除千位分隔符C編程
- 22. 與千位分隔符報價
- 23. Fortran小數點和千位分隔符
- 24. 使用number_format添加千位分隔符
- 25. 千位分隔符與數據綁定
- 26. 千位分隔符不適用
- 27. 千位分隔符在mysql中
- 28. 千位分隔符剃刀MVC和JS
- 29. 添加千位分隔符,自動(SWIFT)
- 30. 錯誤數字格式和千個分隔符
http://bytes.com/topic/c-sharp/answers/248039-formatcurrency-equiv – bevacqua 2010-09-20 16:41:18
我想你」將找到你需要在那裏:) http://stackoverflow.com/questions/610406/javascript-printf-string-format – Jad 2010-09-20 16:41:55
'如何在JavaScript中使用逗號作爲千位分隔符打印數字:http:// stackoverflow。 com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript – 2016-12-08 15:44:00