08. maj 2008 - 15:45Der er
17 kommentarer og 1 løsning
Reg.Exp af nummer
Hey!
I PHP med ereg() eller preg_match() har jeg brug for at tjekke følgende nummer (streng):
- det må kun være tal: ereg([0-9]) - det skal være min/max 3 til 7 cifre: ereg([0-9]{3,7}) - det første cifre må ikke være 0 - det må ikke være nummeret 112 - det må heller ikke være nummeret 114
Jeg bruger trim() andet sted før indsæt i DB, så det behøver RE ikke at tjekke for.
Det er sikkert lige til, men føj jeg bliver aldrig god til regx :-)
Nej, jeg syntes heller ikke det så pænt ud, det jeg forsøgte på :-) Det her er jo simpelt!
Tak for svar! (dine point??)
Hvorfor {2,6}? Mit tal må være på 3, 4, 5, 6 eller 7 cifre langt og jeg syntes at have lavet test med [1-9], men så kan mit tal ikke være 1500 og det må det gerne. Jeg tester lige...
Nummeret må ikke være på 2 cifre og det må heller ikke være på 8 cifre. Det må ikke starte med 0 og det må ikke være 112 og 114 og den slags 3 cifret reserveret numre. Så jo, man kan godt sige, at det må være på 3 cifre, bare ikke 112 og 114. Men det er jo også det du har sagt med det du har smidt mig nu. Men som jeg læser det, så kan man ikke lave et nummer der hedder 1500.
Jeg tror ikke du forstår: hvis man ringer til (nu skal du ikke prøve): 11428937 så får man politiet. Derfor mit forslag til at nummeret ikke må starte med 112 eller 114.
Det virker faktisk fint :-) ...dog kan jeg godt gemme: 123456789, eller 10203040 og det må man ikke... Men kan jo så bare lægge maxlength="7" på mit <input>, kunne dog godt tænke mig at det blev håndteret i php...
hmm... ja, joh... Men det er noget med lokal numre... og man må faktisk godt have numre som: 1140, 1141, 1142.... Det kunne jo være at mit nummer var: 32601140 og dit var 32601141 osv.... Så jeg vil holde mig til 112 og 114 no-go! og det nu nævner, er uheldigt valgt...
Det bestemmer du helt selv. Men skal man kunne ringe til både 114 (politi) og 1140 (et lokalnummer), så formoder jeg at dit system selv kan skelne mellem dem. En almindelige gammeldags telefon med ledning i enden kan ikke.
Det er noget lokal nummer på telefon central og den håndtere at man kan ringe til 114 og lokal nummer 1140. Vil blot forhindre bruger i at oprette eksempelvis 112 og 114 som lokal numre :-)
Jeg er lidt usikker på den med ^ og $, men det her ser ud til at virke:
^ betyder: skal starte med... $ betyder: skal være i slutningen...
Ikke?
Som nævnt i starten.... jeg bliver aldrig helt god til det der regx. Forstå ikke helt det gennemløb der sker. Jeg er med på "starte med", men hvordan det skal læses i godt dansk forstår jeg ikke??
Hvis tallet starter med noget mellem 1 og 9 og ender op med at være mellem 3 og 7 cifre langt, så {
Ahh... det bliver langhåret at forklare tror jeg. Skal nok bare prøve det 100 gange mere, så er den der ;-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.