2014-11-04 26 views
8

Tôi có biểu mẫu trên trang của tôi nơi người dùng có thể nhập một số văn bản và gửi nó. Văn bản sau đó được gửi đến máy chủ (REST API trên đầu trang của node.js) và lưu vào DB (postgres).Làm thế nào để loại bỏ các ký tự điều khiển khỏi chuỗi?

Vấn đề là một số ký tự lạ (ký tự điều khiển) được lưu vào DB dịp - ví dụ: ký tự điều khiển thoát (^ [) hoặc ký tự điều khiển backspace (^ H). Nói chung nó không phá vỡ bất cứ điều gì kể từ khi những nhân vật là vô hình, do đó, html được trả lại một cách chính xác. Tuy nhiên khi tôi cung cấp nội dung xml cho người đọc RSS, họ (người đọc) trả về "Định dạng XML" do các ký tự điều khiển đó (nó hoạt động sau khi xóa chúng).

Câu hỏi của tôi là cách tôi có thể xóa các ký tự đó khỏi chuỗi trên cấp độ khách hàng (javascript) hoặc cấp máy chủ (javascript/node.js)?


Tôi đã tìm thấy câu trả lời đúng ở đây: removing control characters in utf-8 string

s.replace(/[\x00-\x1F\x7F-\x9F]/g, ""); 
+1

bởi ... chỉ cần làm điều đó? Lấy chuỗi, sử dụng hàm thay thế chuỗi để thay thế bất kỳ ký tự không hợp lệ nào (hoặc phạm vi ký tự) bằng '', rồi lưu thay vào đó. –

+0

Kiểm tra chủ đề này http://stackoverflow.com/questions/4374822/javascript-regexp-remove-all-special-characters – Asik

+0

sử dụng CDATA để bọc dữ liệu đó –

Trả lời

1

tôi đã có vấn đề tương tự, đây là giải pháp mà tôi chọn.

tôi mã hóa dữ liệu chuỗi từ người dùng sử dụng encodeURIComponent (variable_name) và sau đó lưu sau đó khi hiển thị i giải mã sử dụng decodeURIComponent (variable_name)

+1

Điều này không hoạt động vì 'encodeURI..' chỉ mã hóa các ký tự điều khiển và 'decodeURI..' giải mã chúng trở lại – user606521

+0

Cảm ơn nhận xét của bạn và bạn có thể giải thích, tại sao mã hóa và giải mã không hoạt động? – Mateen

+0

Bởi vì nó chỉ ENCODES ký tự vô hình, và sau đó DECODES chúng một lần nữa vì vậy trong thực tế không có gì thay đổi thực sự - Tôi sẽ có những ký tự vô hình trong nội dung của tôi - và tôi muốn loại bỏ chúng khỏi nội dung ... – user606521

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