2010-10-29 34 views
20

Tôi đang cố gắng thay thế tất cả các dấu chấm được tìm thấy trong một giá trị do người dùng nhập vào dưới dạng HTML. Ví dụ tôi cần mục nhập '8.30' để được chuyển đổi thành '8x30'.Thay thế tất cả các dấu chấm trong một số

tôi có mã đơn giản này:

var value = $(this).val().trim(); // get the value from the form 
value += ''; // force value to string 
value.replace('.', 'x'); 

Nhưng nó không hoạt động. Sử dụng lệnh console.log trong Firebug, tôi có thể thấy rằng lệnh thay thế đơn giản không xảy ra. '8,30' vẫn giữ nguyên.

Tôi cũng đã thử regexp sau không có kết quả tốt hơn:

value.replace(/\./g, 'x'); 

Tôi đang làm gì sai ở đây?

+0

value.replace (/\./ g, 'x'); là chính xác và nó làm việc cho tôi [Tôi đã kiểm tra trong giao diện điều khiển firbug ví dụ: "2312.88.12.1232" .replace (/\./ g, 'x'); –

+0

@Chinmayee: vâng nó hoạt động thực sự. Như đã chỉ ra bởi Bart Kiers (bên dưới), tôi chỉ quên rằng nó sẽ không tự động cập nhật giá trị trong biến của tôi. – s427

Trả lời

38

replace trả về một chuỗi. Hãy thử:

value = value.replace('.', 'x'); // 
            // or 
value = value.replace(/\./g, 'x'); // replaces all '.' 
+0

Điều đó quá rõ ràng. ;) Cảm ơn rất nhiều. :) – s427

+0

@ s427, bạn được chào đón! :) –

3

Bạn có ba giải pháp:

var text= "ABC.DEF.XYZ"; 
response = text.replace(/\./g,'x'); 


var text= "ABC.DEF.XYZ"; 
response = text.replace(new RegExp("\\.","gm"),"x"); 


var text= "ABC.DEF.XYZ"; 
response = text.split('.').join('x'); 

DEMO in JSFIDDLE

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