Et telefonnummerfelt uden validering ser harmløst ud, indtil et fragtfirma ikke kan nå kunden med en pakke i hånden. Særligt i en manuel ordreformular, hvor en medarbejder skriver et nummer af fra et telefonopkald eller et chat-skærmbillede, slipper et almindeligt tekstfelt tastefejl, forkerte længder og ugyldige præfikser igennem hver gang.
Det mønster, der skal valideres imod
Bangladeshiske mobilnumre følger et bestemt, veldefineret format: elleve cifre, der starter med 01, efterfulgt af et enkelt ciffer fra 3 til 9, der angiver operatøren, og derefter otte cifre mere, udtrykt som det regulære udtryk ^01[3-9]d{8}$. Alt uden for den form er ikke et gyldigt bangladeshisk mobilnummer, punktum.
Tjekket to gange, af to forskellige grunde
Vi validerer mønstret to steder, som hver løser et forskelligt problem:
- I browseren, med det samme. Så snart en medarbejder er færdig med at skrive, vises en fejlbesked, hvis nummeret ikke passer, og den forsvinder, i det øjeblik det rettes, så fejlen fanges, før formularen overhovedet sendes.
- På serveren, ved afsendelse. Det samme tjek kører igen i den kode, der opretter ordren, og afviser forespørgslen helt, hvis det omgås, hvad enten det er med slået JavaScript fra eller en direkte forespørgsel. Validering i browseren er en service; validering på serveren er den egentlige garanti.
Vi satte også maxlength="11" og inputmode="numeric" på selve feltet, så en telefon som standard viser det numeriske tastatur og fysisk ikke kan modtage et tolvte ciffer: små detaljer, der gør korrekt indtastning til den nemmeste vej i stedet for noget, valideringen skal fange bagefter.
Det vigtigste
- Validering, der kun findes i browseren, er ikke validering, men en bekvemmelighed. Tjekket på serveren er det, der faktisk beskytter data.
- Et valideringsmønster bør matche det virkelige format, det repræsenterer, ikke en generisk tommelfingerregel om, hvad der “ligner et telefonnummer”.
- Input-attributter som
inputmodeogmaxlengthforhindrer hele kategorier af fejl, før valideringslogikken overhovedet skal køre.
Læs også: automatisk valg af fri fragt ved en kurvgrænse, hvorfor ordremails ikke nåede frem til Gmail.
Støder du på en lignende begrænsning i din egen WooCommerce- eller WordPress-admin? Lad os tale — ArtinTech Solution bygger netop den slags skræddersyede værktøjer til webshops.