Regex für Base64-String

Nutze /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/, um zu prüfen, ob ein ganzer String ein gültiger Base64-String ist. Jedes Beispiel unten wurde gegen das Muster getestet, und du kannst es mit den vorgeladenen Beispielen im Regex-Tester öffnen.

Aktualisiert am

/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/
Im Regex-Tester öffnen
EingabeErgebnis
SGVsbG8=✓ Treffer
SGVsbG8gd29ybGQ=✓ Treffer
QUJD✓ Treffer
SGVsbG8✗ Kein Treffer
SGV$bG8=✗ Kein Treffer
=abc✗ Kein Treffer
SGVsbG8==✗ Kein Treffer

So funktioniert das Muster

TeilBedeutung
(?:[A-Za-z0-9+\/]{4})*Vollständige Vierer-Blöcke
[A-Za-z0-9+\/]{2}==Oder ein letzter Block mit zwei Padding-Zeichen
[A-Za-z0-9+\/]{3}=Oder ein letzter Block mit einem Padding-Zeichen

Code-Beispiele

JavaScript

const re = /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?', value))

PHP

preg_match('/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/', $value) === 1;

Hinweise und Einschränkungen

Der leere String wird ebenfalls gefunden, prüfe daher die Länge separat. Für base64url (JWTs, URLs) ersetze +\/ durch _- und mach das Padding optional. Dekodiere mit dem Base64-Encoder/Decoder.

Häufige Fragen

Wie lautet der Regex für Base64-String?
/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ — er prüft den gesamten String. Die Tabelle oben zeigt, was jeder Teil bewirkt.
Welche Beispiele treffen zu?
Von den getesteten Beispielen treffen diese zu: SGVsbG8=, SGVsbG8gd29ybGQ=, QUJD. Die anderen nicht.
Wie teste ich diesen Regex?
Klicke auf „Im Regex-Tester öffnen“ — Muster, Flags und Beispieltext werden automatisch geladen, und Treffer werden beim Bearbeiten markiert.