1
<?php
// Caso A: El modificador /u con texto en español (tildes y eñes)
$palabraEspanol = "Año2026";
// Sin /u, \w en PHP solo reconoce [a-zA-Z0-9_] (la 'ñ' no coincide)
$patronSinU = '/^\w+$/';
$patronConU = '/^\w+$/u';
echo "<div style='font-family:system-ui; max-width:640px; padding:15px;'>";
echo "<h3 style='color:#0f172a; margin-top:0;'>🇪🇸 Caso 1: Validación UTF-8 con /u</h3>";
echo "<p style='color:#64748b; font-size:13px;'>Palabra evaluada: <strong>$palabraEspanol</strong> (contiene 'ñ')</p>";
$resSinU = preg_match($patronSinU, $palabraEspanol) === 1;
$resConU = preg_match($patronConU, $palabraEspanol) === 1;
echo "<div style='display:flex; gap:10px; margin-bottom:15px;'>";
echo " <div style='flex:1; background:" . ($resSinU ? '#ecfdf5' : '#fef2f2') . "; border:1px solid " . ($resSinU ? '#a7f3d0' : '#fecaca') . "; padding:10px; border-radius:6px;'>";
echo " <strong>Sin /u (/^\\w+$/):</strong><br><span style='color:" . ($resSinU ? '#059669' : '#dc2626') . "; font-weight:bold;'>" . ($resSinU ? 'Coincide' : '❌ Falla (rechaza la ñ)') . "</span>";
echo " </div>";
echo " <div style='flex:1; background:" . ($resConU ? '#ecfdf5' : '#fef2f2') . "; border:1px solid " . ($resConU ? '#a7f3d0' : '#fecaca') . "; padding:10px; border-radius:6px;'>";
echo " <strong>Con /u (/^\\w+$/u):</strong><br><span style='color:" . ($resConU ? '#059669' : '#dc2626') . "; font-weight:bold;'>" . ($resConU ? '✅ Coincide correctamente' : 'Falla') . "</span>";
echo " </div>";
echo "</div>";
// Caso B: El modificador /s (Dotall) abarcando saltos de línea
$textoMultilinea = "/* COMENTARIO\n EN MÚLTIPLES\n LÍNEAS */";
$patronSinS = '/\/\*.*?\*\//';
$patronConS = '/\/\*.*?\*\//s';
echo "<h3 style='color:#0f172a;'>📄 Caso 2: Bloques Multilínea con /s (Dotall)</h3>";
$resConS = preg_match($patronConS, $textoMultilinea, $mConS) === 1;
echo "<div style='background:#f8fafc; border:1px solid #cbd5e1; padding:12px; border-radius:6px;'>";
echo " <strong>Con modificador /s:</strong> El punto (.) atraviesa saltos de línea y capturó:<br>";
echo " <pre style='background:#1e293b; color:#38bdf8; padding:8px; border-radius:4px; margin:6px 0; font-size:12px;'>" . htmlspecialchars($mConS[0] ?? '') . "</pre>";
echo "</div>";
echo "</div>";
Haz clic para editar este código