2010-11-03 71 views

Trả lời

36

Tùy chọn đơn giản là để loại bỏ tất cả dấu phẩy: parseInt(str.replace(/,/g, ''), 10)

2

Bạn có thể làm điều đó như thế này:

var value = parseInt("15,678".replace(",", "")); 
+0

giải pháp của bạn sẽ chỉ thay thế dấu phẩy đầu tiên, không phải tất cả trong số họ do đó nó sẽ không hoạt động đối với các số> = 1.000.000 –

+0

@ daniel.sedlacek câu hỏi là "Tôi muốn chuyển đổi chuỗi" 15,678 "thành giá trị 15678". Câu trả lời của tôi giải quyết vấn đề này. Tôi đang được pedantic ở đây, tất nhiên, nhưng về mặt kỹ thuật chính xác;) – treeface

8

Một cách là để loại bỏ tất cả các dấu phẩy với:

strnum = strnum.replace(/\,/g, ''); 

rồi chuyển cho parseInt:

var num = parseInt(strnum.replace(/\,/g, ''), 10); 

Nhưng bạn cần phải cẩn thận ở đây. Việc sử dụng dấu phẩy như dấu phân cách hàng ngàn là một điều văn hóa. Ở một số khu vực, số 1,234,567.89 sẽ được viết 1.234.567,89.

+2

'parseInt()' nên được cung cấp một cơ số khi được gọi, để loại bỏ các giải thích hex của một số. –

1

Sử dụng một regex để loại bỏ các dấu phẩy trước khi phân tích cú pháp, như thế này

parseInt(str.replace(/,/g,''), 10) 
//or for decimals as well: 
parseFloat(str.replace(/,/g,'')) 

You can test it here.

8

Nếu bạn chỉ có con số và dấu phẩy:

+str.replace(',', '') 

Các + phôi chuỗi str thành một số nếu nó có thể. Để làm điều này càng rõ ràng càng tốt, quấn nó với dấu ngoặc:

(+str.replace(',', '')) 

do đó, nếu bạn sử dụng nó trong một tuyên bố nó là nhiều tách trực quan (+ + x trông rất giống với ++ x):

var num = (+str1.replace(',', '')) + (+str1.replace(',', '')); 

mã JavaScript ước (Xem "Điểm cộng Confusing và nhược điểm", phần thứ hai từ dưới lên):

http://javascript.crockford.com/code.html

+0

giải pháp của bạn sẽ chỉ thay thế dấu phẩy đầu tiên, chứ không phải tất cả các dấu phẩy để nó sẽ không hoạt động đối với các số> = 1.000.000 –

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