Cómo corregir errores de sintaxis comunes en JSON: Guía práctica RFC 8259 | GoToolstack
Resuelva comas finales, comillas simples y claves sin comillas en JSON. Precisión de números enteros BigInt y formateo limpio de datos.
Prueba y depura expresiones regulares con resaltado de coincidencias y grupos.
Las expresiones regulares (RegExp) proporcionan un motor formal de reconocimiento de patrones de texto, validación de formatos complejos y manipulación de cadenas en el desarrollo de software. No obstante, diseñar patrones avanzados con aserciones condicionales (lookaround), cuantificadores perezosos y grupos de captura exige verificar el comportamiento del motor sobre casos de prueba reales para prevenir vulnerabilidades de retroceso catastrófico.
Un desarrollador diseña un patrón para extraer direcciones de correo corporativas de un fichero de registro con 1.500 líneas de texto. Introduce la expresión regular /([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/g en el entorno de pruebas. La herramienta compila el patrón instantáneamente mediante el motor nativo del navegador, colorea con resaltado cromático diferenciado las 142 coincidencias encontradas, desglosa los grupos de captura 1 (usuario) y 2 (dominio) con sus índices de inicio y fin, y calcula el tiempo de evaluación en milisegundos. Al activar los modificadores multilínea (m) e insensible a mayúsculas (i), la interfaz actualiza los resultados en tiempo real.
El entorno de pruebas incorpora un repositorio de patrones comunes (correos, URLs, fechas ISO e IPv4/IPv6), evaluando las expresiones de forma privada en el cliente sin transferir registros a servidores remotos.
Compilación RegExp: new RegExp(patrón, flags) ➔ String.prototype.matchAll() ➔ Índices + Grupos
Evalúa el autómata finito determinista o no determinista del motor del navegador sobre el texto de entrada, extrayendo las coincidencias, posiciones y desgloses de grupos capturados.
(a+)+ provocan retroceso catastrófico (catastrophic backtracking) que bloquea el hilo de ejecución del servidor o navegador ante entradas adversas.(?:...) cuando no precise reutilizar el valor: Emplear grupos no capturadores alivia la memoria del motor y acelera la evaluación en textos voluminosos frente a grupos con captura ordinarios.^ y $ al validar campos de formulario completos: Omitir los anclajes de inicio y fin permite validar cadenas que contienen texto malicioso no autorizado antes o después del patrón esperado.g para coincidencias globales, i para ignorar mayúsculas y s (dotAll) para que el comodín de punto . incluya los saltos de línea.*, +) abarca la mayor cantidad de caracteres posible que satisfaga la regla; añadir un signo de interrogación (*?, +?) lo vuelve perezoso, deteniéndose en la primera coincidencia válida.(?=...)) o precedido ((?<=...)) por determinado patrón sin incluir ese contenido en la coincidencia resultante de la búsqueda.(?<nombre>...)), aserciones lookbehind y clases de propiedades Unicode (\p{...}).SyntaxError.