Mój JS zapisuje niektóre ciągi danych do JSON za pomocą "stringify()", ale obserwując wyjściowy ciąg JSON widzę wiele dziwnych znaków (poza keyspace), takich jak NULL i inne złe znaki. Teraz nie mam listy tych "złych" znaków, więc jak mogę je usunąć z moich danych string?Jak usunąć złe znaki z ciągu znaków w JS?
Odpowiedz
byłoby miło, gdyby nie było proste regex, ale nie sądzę, że jest. Z tego co rozumiem, nadal chcesz zezwolić na znaki takie jak% $ # @, itp., Ale chcesz uniemożliwić inne dziwne znaki takie jak tabulatory i wartości null. Jeśli to prawda, uważam, że najprostszym sposobem byłoby pętli każdy znak i oceniać kod 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;
}
Jeśli naprawdę chcesz, aby użyć wyrażenia regularnego, biała lista podejście wydaje się konieczne. Umożliwi to dostęp do wszystkich cyfr, liter i spacji ...
val = val.replace(/[^a-z 0-9]+/gi,'');
dzięki bardzo za sugestię białej listy. Tak wspaniałe rozwiązanie tego problemu – Mansiemans
Otrzymuję błąd: 'TypeError: Funkcja Object String() {[kod macierzysty]} nie ma metody 'toCharCode'' w chrome – nnyby
Mam to działa, po prostu zmień linię na: 'if (s.charCodeAt (0)> 31) {' – nnyby
Jeśli masz listę „dobrych” znaków można utworzyć regex który dopasowuje dowolny znak nie w swoim liście, a rozebrać wszystko pasuje - przykładowo, następujące regex pasuje coś nie litery „a”, „q” lub „z”:
/[^aqz]+/ig
- 1. Jak usunąć znaki kontrolne z ciągu znaków?
- 2. Jak usunąć wszystkie znaki z ciągu znaków?
- 3. Jak usunąć puste znaki z ciągu znaków w JavaScript?
- 4. Jak usunąć białe znaki z ciągu znaków w OCaml?
- 5. jak usunąć znaki z ciągu znaków w bazie danych sqlite3?
- 6. Jak usunąć nieprawidłowe znaki z ciągu?
- 7. Jak usunąć wszystkie znaki z ciągu znaków przed specyfiki
- 8. Jak usunąć wszystkie puste znaki w ciągu znaków w Erlangu?
- 9. Jak usunąć powtarzające się znaki w ciągu znaków
- 10. Jak usunąć ostatnie n znaków z ciągu?
- 11. Jak usunąć nieprawidłowe znaki z ciągu?
- 12. C# Regex literowe znaki z ciągu znaków
- 13. Usunąć dwa ostatnie znaki ciągu
- 14. Jak usunąć powrót karetki z ciągu znaków
- 15. Jak usunąć dokładny występ znaków z ciągu?
- 16. Usunąć znaki inne niż UTF z ciągu w Ruby?
- 17. Jak usunąć wszystkie wystąpienia c2a0 w ciągu znaków z PHP?
- 18. Sprawdź znaki specjalne (/ * - + _ @ i $ #%) w ciągu znaków?
- 19. Usunąć wszystkie nie-alfabetyczne, nieliczbowe znaki z ciągu?
- 20. Znaki wstawiania w niewłaściwy indeks ciągu znaków
- 21. Usuń znaki z ciągu znaków w standardowym C
- 22. Jak usunąć pierwsze 10 znaków z ciągu znaków?
- 23. Jak usunąć rozszerzone znaki ASCII z ciągu znaków w T-SQL?
- 24. Jak to działa, aby usunąć zduplikowane znaki z ciągu znaków w python?
- 25. liczyć określone znaki w ciągu znaków (Java)
- 26. Wyodrębnij pierwsze 2 znaki w ciągu znaków
- 27. Usuwanie określonych znaków z ciągu znaków
- 28. Usuwanie zduplikowanych znaków z ciągu znaków
- 29. php: usunąć nawiasy/zawartość z ciągu znaków?
- 30. php: Usunąć konkretny indeks z ciągu znaków?
Co powoduje te dziwne postacie? Lepiej byłoby zbadać główną przyczynę i tam ją naprawić. –