Regex para cadena base64

Usa /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ para comprobar que una cadena completa es una cadena base64 válida. Cada ejemplo de abajo se ha probado con el patrón, y puedes abrirlo en el Probador de Regex con las muestras ya cargadas.

Actualizado el

/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/
Abrir en el Probador de Regex
EntradaResultado
SGVsbG8=✓ Coincide
SGVsbG8gd29ybGQ=✓ Coincide
QUJD✓ Coincide
SGVsbG8✗ No coincide
SGV$bG8=✗ No coincide
=abc✗ No coincide
SGVsbG8==✗ No coincide

Cómo funciona el patrón

ParteSignificado
(?:[A-Za-z0-9+\/]{4})*Bloques completos de cuatro caracteres
[A-Za-z0-9+\/]{2}==O un bloque final con dos signos de relleno
[A-Za-z0-9+\/]{3}=O un bloque final con un signo de relleno

Ejemplos de código

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;

Notas y limitaciones

La cadena vacía también coincide, así que comprueba la longitud por separado. Para base64url (JWT, URL) reemplaza +\/ por _- y hazl relleno opcional. Decodifica con el Codificador/Decodificador Base64.

Preguntas frecuentes

¿Cuál es la regex para cadena base64?
/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ — coincide con la cadena completa. Consulta la tabla de arriba para ver qué hace cada parte.
¿Qué ejemplos coinciden?
De los ejemplos probados, estos coinciden: SGVsbG8=, SGVsbG8gd29ybGQ=, QUJD. Los demás no.
¿Cómo pruebo esta regex?
Haz clic en “Abrir en el Probador de Regex”: el patrón, los flags y el texto de ejemplo se cargan automáticamente, y las coincidencias se resaltan mientras editas.