2009-04-07 38 views
15

Tôi đang cố định dạng các số khác nhau trên trang của mình. Những con số này thể hiện giá, thay đổi về giá hoặc tỷ lệ phần trăm. Tôi biết Javascript có chức năng giới hạn số chữ số thập phân, nhưng có hỗ trợ cho các loại định dạng khác, chẳng hạn như nhóm số bằng dấu phẩy, kiểm soát việc có hiển thị dấu +/- hay không? Dưới đây là những gì tôi có cho đến nay:Javascript: Cách dễ dàng hơn để định dạng số?

var FORMATTER = { 
    price  : function(value) { return '$' + value.toFixed(2); }, 
    pricePer : function(value) { return (value * 100).toFixed(2) + '%'; }, 
    priceChg : function(value) { return (value >= 0 ? '+' : '-') + '$' + Math.abs(value).toFixed(2); } 
}; 

Nó hoạt động OK, nhưng nó muốn thêm dấu phẩy để các 'giá' định dạng, và bạn có thể thấy rằng có một hack trong định dạng của priceChg ', nơi tôi cố gắng để di chuyển dấu +/- trước ký hiệu '$'.

Về cơ bản, tôi hy vọng có một số thư viện ngoài đó (jQuery là OK) mô phỏng lớp DecimalFormat của Java.

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat – zloctb

Trả lời

16

Có những NUMBERFORMATTER jQuery plugin, chi tiết dưới đây:

https://code.google.com/p/jquery-numberformatter/

Từ liên kết ở trên:

Plugin này là một NumberFormatter plugin. Định dạng số có thể là quen thuộc với bất kỳ ai đã làm việc với mã phía máy chủ như Java hoặc PHP và người đã làm việc với quốc tế .

EDIT: Thay thế liên kết bằng liên kết trực tiếp hơn.

+0

Bạn có thể nên liên kết đến http://plugins.jquery.com/project/numberformatter để thay thế. –

+0

Bạn nói đúng, cảm ơn vì điều đó. Làm xong. – karim79

+0

Tuyệt, đây chính xác là những gì tôi đang tìm kiếm. –

4

Không, không có hỗ trợ tích hợp cho định dạng số, nhưng googling sẽ bật lên tải các đoạn mã sẽ làm điều này cho bạn.

EDIT: Tôi đã bỏ lỡ câu cuối cùng của bài đăng của bạn. Hãy thử http://code.google.com/p/jquery-utils/wiki/StringFormat để có giải pháp jQuery.

+0

Anh ấy không yêu cầu hỗ trợ tích hợp, anh ấy yêu cầu thư viện. –

+2

Bài đăng cho biết "Tôi biết Javascript có chức năng giới hạn số vị trí thập phân, nhưng có bất kỳ hỗ trợ nào cho các loại định dạng khác". Đọc như anh ấy hỏi về hỗ trợ tích hợp, nếu bạn không đọc toàn bộ bài đăng như tôi :) – glomad

1

Đồng thời thử dojo.number có hỗ trợ bản địa hóa được tích hợp sẵn. Đó là một tương tự gần gũi hơn với Java NumberFormat/DecimalFormat

3

Chỉ cần hoàn thành lập một thư viện js cho số định dạng Numeral.js. Nó xử lý số thập phân, đô la, tỷ lệ phần trăm và thậm chí định dạng thời gian.

+0

Cảm ơn adamwdraper!Tôi cần một giải pháp không liên quan đến jQuery. –

Các vấn đề liên quan