JS của tôi lưu một số dữ liệu chuỗi vào JSON bằng cách sử dụng "stringify()", nhưng quan sát chuỗi JSON đã xuất ra, tôi thấy rất nhiều ký tự lạ (ngoài keyspace), chẳng hạn như NULL và các ký tự không hợp lệ khác. Bây giờ tôi không có một danh sách các ký tự "xấu" này sao cho tôi có thể tách chúng ra khỏi dữ liệu chuỗi của tôi?Làm cách nào để tách các ký tự không hợp lệ khỏi chuỗi trong JS?
Trả lời
Sẽ thật tuyệt nếu có RegEx đơn giản cho điều đó, nhưng tôi không nghĩ là có. Từ những gì tôi hiểu, bạn vẫn muốn cho phép các ký tự như% $ # @, v.v., nhưng muốn không cho phép các ký tự kỳ quặc khác như các tab và các giá trị rỗng. Nếu điều này đúng, tôi tin rằng cách dễ nhất là lặp lại từng ký tự và đánh giá mã char ...
function stripCrap(val) {
var result = '';
for(var i = 0, l = val.length; i < l; i++) {
var s = val[i];
if(String.toCharCode(s) > 31)
result += s;
}
return result;
}
Nếu bạn thực sự muốn sử dụng RegEx, phương pháp tiếp cận danh sách trắng có vẻ cần thiết. Điều này sẽ cho phép tất cả các số, chữ cái và khoảng trắng ...
val = val.replace(/[^a-z 0-9]+/gi,'');
cảm ơn rất nhiều vì đề xuất danh sách trắng. Một giải pháp tuyệt vời cho vấn đề này – Mansiemans
Tôi nhận được lỗi: 'TypeError: Đối tượng chức năng String() {[native code]} không có phương pháp 'toCharCode'' trong chrome – nnyby
Tôi nhận nó hoạt động, chỉ cần thay đổi dòng đó để: 'if (s.charCodeAt (0)> 31) {' – nnyby
Nếu bạn có một danh sách các ký tự "tốt" bạn có thể tạo một regex mà phù hợp với bất kỳ ký tự không trong danh sách của bạn, và dải bất cứ điều gì nó phù hợp - ví dụ, regex sau phù hợp với bất cứ điều gì không các chữ cái "a", "q" hoặc "z":
/[^aqz]+/ig
- 1. Làm cách nào để xóa ký tự không hợp lệ khỏi chuỗi?
- 2. Thay thế các ký tự không hợp lệ của một chuỗi có ký tự không hợp lệ
- 3. Có cách nào trong ruby 1.9 để xóa chuỗi byte không hợp lệ khỏi chuỗi không?
- 4. Làm cách nào để tách các ký tự không phải chữ và số (bao gồm khoảng trắng) khỏi chuỗi?
- 5. Ngoại lệ XML: (các) ký tự không hợp lệ
- 6. Cách tách các ký tự unicode (LEFT_TO_RIGHT_MARK) khỏi một chuỗi trong php
- 7. Cách dễ nhất để tách ký tự dòng mới khỏi chuỗi đầu vào trong bảng mã
- 8. Ký tự nào hợp lệ trong URL?
- 9. Làm cách nào để xóa các ký tự X đầu tiên khỏi chuỗi bằng sed?
- 10. Làm cách nào để sử dụng VBScript để tách các ký tự đầu tiên của chuỗi?
- 11. Tách chuỗi bằng ký tự
- 12. Regex để thay thế các ký tự không hợp lệ
- 13. Làm cách nào để xóa các ký tự trống khỏi chuỗi trong JavaScript?
- 14. Các ký tự không hợp lệ trong phản hồi JSON
- 15. Base64 Chuỗi ném lỗi ký tự không hợp lệ
- 16. Cách xóa các ký tự không hợp lệ khỏi tệp xml bằng sed hoặc Perl
- 17. Những ký tự nào hợp lệ/không hợp lệ trong tên khóa JSON?
- 18. Cách tách chuỗi giữa các ký tự khác nhau
- 19. Các ký tự không hợp lệ XML trong đường dẫn
- 20. PHP: thay thế các ký tự không hợp lệ trong chuỗi utf-8 trong
- 21. Làm cách nào để thoát khỏi ký tự @ trong Mac
- 22. Tước các ký tự XML không hợp lệ trong Java
- 23. Làm cách nào để tách các biến Perl khỏi văn bản trong các chuỗi nội suy?
- 24. C# Xóa các ký tự không hợp lệ khỏi tên tệp
- 25. Xóa các ký tự URL không hợp lệ bằng JavaScript
- 26. Làm cách nào để cho phép "Ký tự không hợp lệ trong đường dẫn"?
- 27. Làm cách nào để cắt chuỗi con khỏi chuỗi ký tự bằng cách sử dụng Javascript?
- 28. Làm cách nào để xóa tất cả các ký tự khỏi chuỗi
- 29. Làm cách nào để xóa các ký tự dòng mới khỏi chuỗi?
- 30. Ký tự không hợp lệ trong tiêu đề HTTP
Nguyên nhân gây ra những ký tự lạ đó? Nó sẽ là tốt hơn để điều tra nguyên nhân gốc rễ và sửa chữa nó ở đó. –