From b708b53fbc4bef094f9f779d13adc86be7cf0e2c Mon Sep 17 00:00:00 2001 From: Kruille Date: Sun, 1 Mar 2026 18:14:54 +0100 Subject: [PATCH] Change regex to match backend. --- src/Registration/Registration.API/RegistrationAPI.http | 2 +- src/Web/lan-frontend/app/lib/validation.ts | 8 ++------ src/Web/lan-frontend/app/register/page.tsx | 8 ++++---- src/Web/lan-frontend/app/volunteer/page.tsx | 4 ++-- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/Registration/Registration.API/RegistrationAPI.http b/src/Registration/Registration.API/RegistrationAPI.http index 4101ca6..0a3d159 100644 --- a/src/Registration/Registration.API/RegistrationAPI.http +++ b/src/Registration/Registration.API/RegistrationAPI.http @@ -19,7 +19,7 @@ Content-Type: application/json "guardianPhoneNumber": "0700000001", "guardianEmail": "guardian.user@example.com", "isVisitor": false, - "hasApprovedGdpr": true, + "hasApprovedGdpr": false, "friends": "Friend One", "specialDiet": "None" } diff --git a/src/Web/lan-frontend/app/lib/validation.ts b/src/Web/lan-frontend/app/lib/validation.ts index 70ba73a..44caa18 100644 --- a/src/Web/lan-frontend/app/lib/validation.ts +++ b/src/Web/lan-frontend/app/lib/validation.ts @@ -14,12 +14,8 @@ export const getAgeFromSsn = (value: string) => { return currentYear - birthYear; }; -export const isValidName = (value: string) => { - if (!/^[\p{L}\-\s]+$/u.test(value)) return false; - if ((value.match(/-/g) ?? []).length > 1) return false; - if ((value.match(/\s/g) ?? []).length > 1) return false; - return true; -}; +export const isValidName = (value: string) => + /^[\p{L}]+([-\s][\p{L}]+)?$/u.test(value); export const isValidEmail = (value: string) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value); diff --git a/src/Web/lan-frontend/app/register/page.tsx b/src/Web/lan-frontend/app/register/page.tsx index 43e6cf4..ee461c0 100644 --- a/src/Web/lan-frontend/app/register/page.tsx +++ b/src/Web/lan-frontend/app/register/page.tsx @@ -140,14 +140,14 @@ export default function RegisterPage() { nextFieldErrors.firstName = "Förnamn får vara max 30 tecken."; else if (!isValidName(trimmedFirstName)) nextFieldErrors.firstName = - "Förnamn får endast innehålla bokstäver och bindestreck."; + "Förnamn får endast innehålla bokstäver, ett bindestreck eller ett mellanslag."; if (!trimmedSurName) nextFieldErrors.surName = "Efternamn är obligatoriskt."; else if (trimmedSurName.length > 30) nextFieldErrors.surName = "Efternamn får vara max 30 tecken."; else if (!isValidName(trimmedSurName)) nextFieldErrors.surName = - "Efternamn får endast innehålla bokstäver och bindestreck."; + "Efternamn får endast innehålla bokstäver, ett bindestreck eller ett mellanslag."; if (!trimmedGrade) nextFieldErrors.grade = "Årskurs är obligatorisk."; if (!trimmedGuardianFirstName) nextFieldErrors.guardianFirstName = @@ -157,7 +157,7 @@ export default function RegisterPage() { "Vårdnadshavares förnamn får vara max 30 tecken."; else if (!isValidName(trimmedGuardianFirstName)) nextFieldErrors.guardianFirstName = - "Vårdnadshavares förnamn får endast innehålla bokstäver och bindestreck."; + "Vårdnadshavares förnamn får endast innehålla bokstäver, ett bindestreck eller ett mellanslag."; if (!trimmedGuardianLastName) nextFieldErrors.guardianLastName = "Vårdnadshavares efternamn är obligatoriskt."; @@ -166,7 +166,7 @@ export default function RegisterPage() { "Vårdnadshavares efternamn får vara max 30 tecken."; else if (!isValidName(trimmedGuardianLastName)) nextFieldErrors.guardianLastName = - "Vårdnadshavares efternamn får endast innehålla bokstäver och bindestreck."; + "Vårdnadshavares efternamn får endast innehålla bokstäver, ett bindestreck eller ett mellanslag."; if (!trimmedGuardianPhone) nextFieldErrors.guardianPhoneNumber = "Vårdnadshavares Mobilnummer är obligatoriskt."; diff --git a/src/Web/lan-frontend/app/volunteer/page.tsx b/src/Web/lan-frontend/app/volunteer/page.tsx index 901a4fc..200d139 100644 --- a/src/Web/lan-frontend/app/volunteer/page.tsx +++ b/src/Web/lan-frontend/app/volunteer/page.tsx @@ -101,13 +101,13 @@ export default function VolunteerPage() { else if (trimmedFirstName.length > 30) nextFieldErrors.firstName = "Förnamn får vara max 30 tecken."; else if (!isValidName(trimmedFirstName)) - nextFieldErrors.firstName = "Förnamn får endast innehålla bokstäver och bindestreck."; + nextFieldErrors.firstName = "Förnamn får endast innehålla bokstäver, ett bindestreck eller ett mellanslag."; if (!trimmedSurName) nextFieldErrors.surName = "Efternamn är obligatoriskt."; else if (trimmedSurName.length > 30) nextFieldErrors.surName = "Efternamn får vara max 30 tecken."; else if (!isValidName(trimmedSurName)) - nextFieldErrors.surName = "Efternamn får endast innehålla bokstäver och bindestreck."; + nextFieldErrors.surName = "Efternamn får endast innehålla bokstäver, ett bindestreck eller ett mellanslag."; if (!trimmedPhoneNumber) nextFieldErrors.phoneNumber = "Mobilnummer är obligatoriskt."; if (!trimmedEmail) nextFieldErrors.email = "E-post är obligatorisk.";