Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:15 Der er 22 kommentarer og
4 løsninger

problemer med ereg()

hejsa
jeg har et patterne, der ser sådan ud:

if (!ereg("[0-9]{4}", $postnr)) {
        echo "<p>Husk at skrive et postnr.</p>";
        require('inc/footer.inc');
        exit;
}

ved tal under 4 afviser den rigtigt nok - problemet er hvis man taster fx 5 cifre - så får man ikke fejlmeddelelsen. Databasen er jo sat op til 4 tegn - derfor smider den så kun de første 4 ind. Jeg troede at {4} betød præcis 4, men det har jeg måske misforstået. Håber nogen kan oplyse mig... :-)

en anden ting jeg bøvler med er telefonnr - i dk er de vel altid 8 tegn - hvordan sorterer man eventuelle mellemrum fra, som brugeren måske indtaster? for så kan man vel lave en ereg() som ovenstående bare med 8 tegn?
Avatar billede detox Nybegynder
20. februar 2005 - 00:18 #1
Prøv med:

if (!ereg("^[0-9]{4}$", $postnr)) {
Avatar billede sthen Nybegynder
20. februar 2005 - 00:21 #2
if(!eregi("^[0-9]{3,4}$", $postnr))

sådan
Du skal have 3 cifre med, da f.eks. 800 er et validt postnr.
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:24 #3
taaak det hjalp - det var vist bare dollartegnet så... ^ havde jeg prøvet...
ja man kan jo stirre sig helt blind på det...
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:25 #4
hvad??? kan 800 være et postnr?
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:25 #5
nogle forslag til hvordan den ignorerer blanktegn? trim() er vist kun i enderne, ikke?
Avatar billede sthen Nybegynder
20. februar 2005 - 00:28 #6
Du bør vel kunne skrive:
if(!eregi("^[0-9]{8}$", $tlf)) {
echo "Telefonnummer skal bestaå af 8 cifre";
}
Avatar billede detox Nybegynder
20. februar 2005 - 00:29 #7
800  Tvøroyri

Det er vidst kun på færøerne de har 3 cifre i postnummeret ;O)
Avatar billede sthen Nybegynder
20. februar 2005 - 00:30 #8
Hvis du kombinerer sidste løsning med en MAXLENGTH="8" på dit INPUT felt, så burde den være OK
Avatar billede detox Nybegynder
20. februar 2005 - 00:30 #9
Du kan fjerne evt. mellemrum med:
$tlf = str_replace(' ', '', $tlf);
Avatar billede sthen Nybegynder
20. februar 2005 - 00:31 #10
Hvad så med postnr. 900 (Københavns Hovedpostkontor)
Avatar billede detox Nybegynder
20. februar 2005 - 00:32 #11
900  Vágur??
Avatar billede sthen Nybegynder
20. februar 2005 - 00:33 #12
Hedder det så 0900 for så er der jo ingen probl. ?
Avatar billede detox Nybegynder
20. februar 2005 - 00:33 #13
Mener du ikk 1000?
Avatar billede detox Nybegynder
20. februar 2005 - 00:33 #14
1000-1499 København K
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:33 #15
hvad er det for nogle underlige navne??? hehehe - er det færøerne eller hvad?
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:34 #16
men point taken - så får den lov at være mellem 3 og 4 tegn!
Avatar billede detox Nybegynder
20. februar 2005 - 00:34 #17
Det er færøerne ja ;o)
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:38 #18
detox<<< $tlf = str_replace(' ', '', $tlf);
ligner noget af det jeg havde forestillet mig. Tak!
jeg synes ikke det er så brugervenligt bare at oplyse om at de kun må skrive 8 tegn.

hvis du også lægger et svar kan vi jo slå halv skade oder was??
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:39 #19
det er godt nok fornemt at få hjælp så hurtigt! 1000 tak!!!
:-)
Avatar billede sthen Nybegynder
20. februar 2005 - 00:39 #20
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:46 #21
hvis jeg nu forhøjer indsatsen lidt, mon jeg så kan tillade mig at stille et tillægsspørgsmål???

Det er jo ret fedt at fjerne mellemrummene for så kan jeg jo bedre vise numrene ens, når de trækkes frem af basen via php-scriptet. nogen gode ideer til hvordan man får den til at tage de 8 tal og indsætte blanktegn efter to så formatet bliver ens - altså ala 22 22 22 22?

eller skal jeg stille det som et helt nyt spørgsmål?
Avatar billede detox Nybegynder
20. februar 2005 - 00:50 #22
$nr = 12345678;
$nr = chunk_split($nr, 2, ' ');
echo $nr;
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:52 #23
tak!!! hvor er du dog en haj!
Avatar billede hanne_e Nybegynder
20. februar 2005 - 00:54 #24
Godnat og tak :-)
Avatar billede detox Nybegynder
20. februar 2005 - 00:55 #25
sthen -> Det er så åbenbart 0900 :o)
Avatar billede detox Nybegynder
20. februar 2005 - 00:55 #26
Velbekommen
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester