From 6950fd7de5f4a9c41572cab8941d3a437fb92134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ullrich=20Sch=C3=A4fer?= Date: Mon, 23 Mar 2026 21:51:34 +0100 Subject: [PATCH] Fix username validation: strip invalid chars instead of pattern error Browser's native pattern validation fired before preventDefault, showing "The string did not match the expected pattern" error. Replace HTML pattern with onChange that strips invalid characters. Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/journal/app/routes/auth.register.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/journal/app/routes/auth.register.tsx b/apps/journal/app/routes/auth.register.tsx index b3bbcf6..8d1ca15 100644 --- a/apps/journal/app/routes/auth.register.tsx +++ b/apps/journal/app/routes/auth.register.tsx @@ -87,9 +87,8 @@ export default function RegisterPage() { id="username" type="text" required - pattern="[a-z0-9_-]+" value={username} - onChange={(e) => setUsername(e.target.value.toLowerCase())} + onChange={(e) => setUsername(e.target.value.toLowerCase().replace(/[^a-z0-9_-]/g, ""))} className="mt-1 block w-full rounded-md border border-gray-300 px-3 py-2 shadow-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" placeholder="alice" />