2013-06-26 17 views

Trả lời

59

Như replace() tạo/trả về một chuỗi mới hơn là sửa đổi bản gốc (tt), bạn cần phải đặt biến (tt) bằng chuỗi mới được trả về từ hàm replace.

tt = tt.replace(/,/g, '.') 

JSFiddle

1

mỗi the docs, replace trả về chuỗi mới - nó không thay đổi chuỗi bạn vượt qua nó.

var tt="88,9827"; 
tt = tt.replace(/,/g, '.'); 
^^^^ 
alert(tt); 
+0

không hoạt động, người đàn ông – Leo

+3

@Leo không thực sự nhập các mẫu. – jbabey

4

Sau khi thay thế ký tự, bạn cần phải được gán cho biến.

var tt = "88,9827"; 
tt = tt.replace(/,/g, '.') 
alert(tt) 

Trong hộp cảnh báo nó sẽ show 88,9827

+0

thanks, also, man!) – Leo

2

Từ định nghĩa của chức năng (http://www.w3schools.com/jsref/jsref_replace.asp):

Các replace() phương pháp tìm kiếm một chuỗi cho một giá trị nhất định, hoặc một biểu thức chính quy và trả về một chuỗi mới trong đó các giá trị được chỉ định được thay thế.

Phương pháp này không thay đổi chuỗi gốc.

Do đó, dòng: tt.replace(/,/g, '.') không thay đổi giá trị tt; chỉ cần trả lại giá trị mới.

Bạn cần phải thay dòng này với: tt = tt.replace(/,/g, '.')

8

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

var tt="88,9827"; 
tt=tt.replace(",", "."); 
alert(tt); 

working fiddle example

-1

này sẽ cần mới var ttfixed

Sau đó, dưới này khe giá trị tt và thay thế tất cả các con trỏ xuống dưới đây là tt đến ttfixed

ttfixed = (tt.replace(",", ".")); 
+0

Hãy dành thời gian để cải thiện định dạng câu trả lời của bạn. – Xan

+0

Dấu ngoặc đơn phụ là không cần thiết, và khi OP đang hy vọng thay đổi var ban đầu, không cần phải tạo một cái mới. Ngoài ra nếu bạn định tạo một cái mới, bạn nên thêm 'var' vào trước để tránh tạo một var toàn cục. – smerny