2011-09-14 63 views
5

Tôi đang cố gắng xóa dấu thăng (£) khỏi chuỗi bằng javascript. Tôi đang cố gắng thực hiện việc đó bằng cách sử dụngLàm thế nào để bạn thay thế một dấu thăng (tiền tệ) trong javascript?

str = str.replace(/\£/g, ""); 

Tuy nhiên, nó không xóa dấu.

Giá trị của str đang được tìm nạp từ một khoảng (và giá trị chính xác đang được tìm nạp). Khoảng thời gian này trước đây đã được đặt bằng javascript, khi được mã hóa trong chuỗi là

£ 

Mọi ý tưởng về cách tốt nhất để xóa dấu thăng?

+9

'thay thế ('£', '')' – Zirak

+3

@Zirak ... không hoạt động http://jsfiddle.net/EUV7c/ –

Trả lời

9

Bạn có thể cần phải sử dụng unicode cho việc này. Ví dụ, '£10.00'.replace(/\u00A3/g, '');

+0

Điều này dường như sắp xếp nó cho tôi khá độc đáo. Đã thử một số câu trả lời khác, nhưng câu trả lời này đã giải quyết được vấn đề. Có khả năng mã hơi nghèo trên một phần của tôi ở nơi khác có một knock trên hiệu lực, do đó, các giải pháp khác cũng có thể làm việc cho người khác. – Lee

+0

Tôi đoán rằng lý do một số người khác có thể đã không làm việc đi xuống mà charset trang được tải với (mặc dù tôi đã không xác minh điều đó). Bằng cách này hay cách khác, có vẻ như có những bối cảnh nhất định trong đó nhân vật '£' theo nghĩa đen không phù hợp như mong đợi. – jmar777

1

Bạn chỉ có thể làm

"hello w£orld".replace(/£/g,"") 
+0

vị trí của bạn? – naveen

+1

không cần thiết khi chỉ có một biểu tượng £. Ah ... nhưng tác giả đã có nó trong đó ... Tôi sẽ chỉnh sửa nó –

3

Tháo xuyệc ngược từ regexp của bạn.

+2

Một dấu gạch chéo ngược không làm tổn thương bất cứ điều gì. – user113716

+0

+1 @patrick dw: không biết. lấy làm tiếc. – naveen

3

Bằng cách này nó làm việc cho tôi:

var str = "£sdfsdf"; 

str = str.replace("£", ""); 

alert(str); 

Fiddle ở đây: http://jsfiddle.net/peUrn/1/

1

Cách đơn giản là:

str.replace('£', ''); 
+0

Điều này sẽ không hoạt động trong HTML vì vùng 'script' được" bảo vệ ". (Thật là tuyệt vời hơn là viết 'if (một & & b) {...} 'giống như trong XML bên ngoài CDATA :-) –

+0

@pst tại sao? anh ta nói mã hóa của nó – nidhin

+0

Điểm tốt ... không hoàn toàn chắc chắn những gì đang xảy ra bây giờ. –

0

Mã hóa một phần Uniform Resource Identifier (URI) bằng cách thay thế mỗi thể hiện của nhân vật nhất định bằng một, hai, hoặc ba trình tự thoát đại diện cho mã hóa UTF-8 của nhân vật

Có nghĩa là, theo thứ tự để mã hóa một dấu thăng, JavaScript sử dụng 2 ký tự.

£ = %C2%A3 

Xem http://fyneworks.blogspot.com/2008/06/british-pound-sign-encoding-revisited.html để biết thêm thông tin.

Tốt nhất nên sử dụng% C2% A3 thay cho dấu thăng trong tập lệnh của bạn.

+0

Điều này là để mã hóa thành URL/URI, không phải về mã hóa thành chuỗi hoặc ký tự regex (ví dụ: mã JavaScript). –

+0

Tôi biết, chỉ có tham chiếu mới có thể hữu ích. –

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