Ich verwende die Funktion window.atob('string')
, um eine Zeichenfolge von base64 in eine Zeichenfolge zu dekodieren. Jetzt frage ich mich, gibt es eine Möglichkeit zu überprüfen, dass "String" tatsächlich gültig base64 ist? Ich möchte benachrichtigt werden, wenn die Zeichenfolge nicht Base64 ist, damit ich eine andere Aktion ausführen kann.
Wenn "gültig" bedeutet, dass "nur Base64-Zeichen darin enthalten sind", dann überprüfe gegen [A-Za-z0-9+/=]
.
Wenn "gültig" eine "legale" base64-kodierte Zeichenfolge bedeutet, sollten Sie am Ende nach dem =
suchen.
Wenn "gültig" bedeutet, dass es nach der Decodierung sinnvoll ist, erfordert es Domänenwissen.
Ich würde dafür einen regulären Ausdruck verwenden. Versuchen Sie Folgendes:
%Vor%Erläuterung:
%Vor%Diese Methode versucht zu dekodieren, dann zu kodieren und mit dem Original zu vergleichen. Könnte auch mit den anderen Antworten für Umgebungen kombiniert werden, in denen Parsingfehler auftreten. Es ist auch möglich, eine Zeichenkette zu haben, die wie ein gültiger base64 aus Regex-Sicht aussieht, aber nicht tatsächliche base64 ist.
%Vor%So wird es in einer meiner Lieblings-Validierungs-Bibliotheken gemacht:
%Vor%Tags und Links javascript base64