PDA

Bekijk Volledige Versie : [PHP] Tekens vergelijken



Maurice van 't Loo
09/06/03, 13:35
Hoi Allemaal,

Ik wil een soort van check uitvoeren om te zien of iemand bijv. een postcode
correct heeft ingevuld.
Dus eerst controleren of de eerste 4 tekens letters zijn en dat teken 5 & 6
een cijfers is.

Iemand een idee hoe ik dat simpel uit kan voeren?

Of wordt het toch teken voor teken controleren of het in een bep. chr-reeks
zit.....

Bij voorbaat dank,
Maurice

John Bokma
09/06/03, 13:35
Maurice van 't Loo wrote in message
<3ee46e90$0$49106$e4fe514c@news.xs4all.nl>...
>Hoi Allemaal,
>
>Ik wil een soort van check uitvoeren om te zien of iemand bijv. een
postcode
>correct heeft ingevuld.
>Dus eerst controleren of de eerste 4 tekens letters zijn en dat teken 5 & 6
>een cijfers is.
>
>Iemand een idee hoe ik dat simpel uit kan voeren?
>
>Of wordt het toch teken voor teken controleren of het in een bep. chr-reeks
>zit.....


In Perl (waar PHP een beetje van afgekeken is) doe je iets als:

if ($postcode =~ /\d{4}[A-Z]{2}/)


valid

}

dus 4 digits (= cijfers) gevolgd door 2 letters.

John (Perl perl perl)

--
mail: mail (a) johnbokma.com
home: http://johnbokma.com/

Maurice van 't Loo
09/06/03, 14:35
"John Bokma" <postmaster@castleamber.com> schreef in bericht
news:1055158373.576429@halkan.kabelfoon.nl...
>
> Maurice van 't Loo wrote in message
> <3ee46e90$0$49106$e4fe514c@news.xs4all.nl>...
> >Hoi Allemaal,
> >
> >Ik wil een soort van check uitvoeren om te zien of iemand bijv. een
> postcode
> >correct heeft ingevuld.
> >Dus eerst controleren of de eerste 4 tekens letters zijn en dat teken 5 &
6
> >een cijfers is.
>
> In Perl (waar PHP een beetje van afgekeken is) doe je iets als:
>
> if ($postcode =~ /\d{4}[A-Z]{2}/)
> valid
> }
>
> dus 4 digits (= cijfers) gevolgd door 2 letters.
>
> John (Perl perl perl)

Geweldig, bedankt.....
Is er ook zo'n tip om te kijken of een emailadres "geldig" is ingevuld?

Bij voorbaat dank,
Maurice

Rene Pijlman
09/06/03, 14:50
Maurice van 't Loo:
>Is er ook zo'n tip om te kijken of een emailadres "geldig" is ingevuld?

Dat is niet eenduidig. Ik doe het zo:

// Controleer of het e-mail adres een syntactisch correct Internet e-mail adres is. We staan enkele bijzondere
// tekens toe die in de praktijk gebruikt blijken te worden.
function checkmail($email)
{
// Norm: 1 of meer normale tekens (letters, cijfers, underscore)
// Sch: Scheidingsteken
// Tld: Top level domain
// Norm ( Sch Norm )*@ Norm ( Sch Norm )* .Tld
return eregi( "^[_a-z0-9]+([\\'\\+\\&\\./-][_a-z0-9]+)*@[a-z0-9]+([\\.-][a-z0-9]+)*\\.[a-z]{2,4}$", $email);
}

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Maurice van 't Loo
09/06/03, 14:50
"Maurice van 't Loo" <maurice@NOSPAM.nl> schreef in bericht
news:3ee47de9$0$49099$e4fe514c@news.xs4all.nl...
>
> "John Bokma" <postmaster@castleamber.com> schreef in bericht
> news:1055158373.576429@halkan.kabelfoon.nl...
> >
> > Maurice van 't Loo wrote in message
> > <3ee46e90$0$49106$e4fe514c@news.xs4all.nl>...
> > >Hoi Allemaal,
> > >
> > >Ik wil een soort van check uitvoeren om te zien of iemand bijv. een
> > postcode
> > >correct heeft ingevuld.
> > >Dus eerst controleren of de eerste 4 tekens letters zijn en dat teken 5
&
> 6
> > >een cijfers is.
> >
> > In Perl (waar PHP een beetje van afgekeken is) doe je iets als:
> >
> > if ($postcode =~ /\d{4}[A-Z]{2}/)
> > valid
> > }
> >
> > dus 4 digits (= cijfers) gevolgd door 2 letters.
> >
> > John (Perl perl perl)
>
> Geweldig, bedankt.....
> Is er ook zo'n tip om te kijken of een emailadres "geldig" is ingevuld?

Te vroeg gevraagd......
Dankzij Google http://aspn.activestate.com/ASPN/Cookbook/PHP/Recipe/121796
gevonden......
Daar wordt ereg gebruikt, en dankzij php.net ben ik er net achter gekomen
dat:
if ( !eregi("([0-9]{4})([a-z]{2})", $postcode) ) $error .= "Postcode is
incorrect !<br>";
de postcode ook kan controleren.....

De Perl methode kreeg ik helaas niet aan de praat.

Een ieder bedankt,
Maurice

robert
09/06/03, 14:50
Maurice van 't Loo <maurice@NOSPAM.nl>:
[geldig e-mail adres]
> Dankzij Google http://aspn.activestate.com/ASPN/Cookbook/PHP/Recipe/121796
> gevonden......

Lees ook even het commentaar eronder; die functie rammelt
behoorlijk. Het matchen of een e-mail adres syntactisch
correct is geen sinecure. De liefhebbers kunnen de PRE op
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
porten naar PHP.

--
robert

Jan Ehrhardt
09/06/03, 15:35
Rene Pijlman in nl.internet.www.server-side (Mon, 09 Jun 2003 14:36:05
+0200):

>eregi( "^[_a-z0-9]+([\\'\\+\\&\\./-][_a-z0-9]+)*@[a-z0-9]+([\\.-][a-z0-9]+)*\\.[a-z]{2,4}$", $email);

En als iemand nu een .museum tld heeft?

Jan
--
Dropdown and pushup menu's - http://cgi.monitor.nl/cms.html

Jan Reilink
09/06/03, 16:50
Rene Pijlman wrote:
> Maurice van 't Loo:
>
>>Is er ook zo'n tip om te kijken of een emailadres "geldig" is ingevuld?
>
>
> Dat is niet eenduidig. Ik doe het zo:
>

Ergens op O'Reilly heb ik ooit al eens een regexp van 3 of 4 flinke
regels gelezen, alleen maar om te controleren of het emailadres geldig
is (kan zijn) of niet. Helaas heb ik de URL hier niet, maar ik zal
morgen op $kantoor even kijken of ik 'em daar kan vinden.

Groeten, Jan
(die helaas niet zeker weet of hij 'em gebookmarked heeft)

--
/"\ ASCII Ribbon Campaign
\ / No HTML in mail or news!
X
/ \ DSINet: http://www.dsinet.org

Nico Coesel
09/06/03, 17:35
"Maurice van 't Loo" <maurice@NOSPAM.nl> wrote:

>
>"John Bokma" <postmaster@castleamber.com> schreef in bericht
>news:1055158373.576429@halkan.kabelfoon.nl...
>>
>> Maurice van 't Loo wrote in message
>> <3ee46e90$0$49106$e4fe514c@news.xs4all.nl>...
>> >Hoi Allemaal,
>> >
>> >Ik wil een soort van check uitvoeren om te zien of iemand bijv. een
>> postcode
>> >correct heeft ingevuld.
>> >Dus eerst controleren of de eerste 4 tekens letters zijn en dat teken 5 &
>6
>> >een cijfers is.
>>
>> In Perl (waar PHP een beetje van afgekeken is) doe je iets als:
>>
>> if ($postcode =~ /\d{4}[A-Z]{2}/)
>> valid
>> }
>>
>> dus 4 digits (= cijfers) gevolgd door 2 letters.

Hier zul je in PHP nog iets van een regexp functie voor moeten
gebruiken.

>Geweldig, bedankt.....
>Is er ook zo'n tip om te kijken of een emailadres "geldig" is ingevuld?

Ik heb daarvoor ooit eens een routine gedownload die ook test of het
domein geldig is. Dat is handig om typefouten in het domein te
voorkomen.

--
Reply to nico@nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op www.adresboekje.nl

Daniel Tryba
09/06/03, 18:05
Maurice van 't Loo <maurice@nospam.nl> wrote:
> Daar wordt ereg gebruikt, en dankzij php.net ben ik er net achter gekomen
> dat:
> if ( !eregi("([0-9]{4})([a-z]{2})", $postcode) ) $error .= "Postcode is
> incorrect !<br>";
> de postcode ook kan controleren.....

En dan vallen hele volkstammen buiten de bood welke een spatie tussen de
cijfers en letters zetten.

Postcodes beginnen ook niet met een 0 AFAIK, en de de xx00 reeks is
vrijwel alleen voor postbussen. Dus wat versta je onder controleren?

BTW die backreferences, (), zijn ook nutteloos hier.

--

Daniel Tryba

Rene Pijlman
09/06/03, 18:05
Jan Ehrhardt:
>Rene Pijlman:
>>eregi( "^[_a-z0-9]+([\\'\\+\\&\\./-][_a-z0-9]+)*@[a-z0-9]+([\\.-][a-z0-9]+)*\\.[a-z]{2,4}$", $email);
>
>En als iemand nu een .museum tld heeft?

Bug!

E-mail adressen op het tld (janpeter@nl) accepteert het trouwens
ook ten onrechte niet.

Helaas is een correcte syntaxcheck, die niet alle apert foutieve
adressen accepteert, zo goed als onmogelijk.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

John Bokma
09/06/03, 19:35
Jan Reilink wrote in message ...
>Rene Pijlman wrote:
>> Maurice van 't Loo:
>>
>>>Is er ook zo'n tip om te kijken of een emailadres "geldig" is ingevuld?
>>
>>
>> Dat is niet eenduidig. Ik doe het zo:
>>
>
>Ergens op O'Reilly heb ik ooit al eens een regexp van 3 of 4 flinke
>regels gelezen, alleen maar om te controleren of het emailadres geldig
>is (kan zijn) of niet. Helaas heb ik de URL hier niet, maar ik zal
>morgen op $kantoor even kijken of ik 'em daar kan vinden.


Randal Schwartz (IIRC) YAPH heeft er IIRC een gemaakt.

Probeer: perl Randal Schwartz email address valid
in Google

John

--
mail: mail (a) johnbokma.com
home: http://johnbokma.com/

Maurice van 't Loo
09/06/03, 23:05
"Daniel Tryba" <news_nl.internet.www.server-side@canopus.nl> schreef in
bericht news:bc2ab7$ijf$1@news.tue.nl...
> Maurice van 't Loo <maurice@nospam.nl> wrote:
> > Daar wordt ereg gebruikt, en dankzij php.net ben ik er net achter
gekomen
> > dat:
> > if ( !eregi("([0-9]{4})([a-z]{2})", $postcode) ) $error .= "Postcode is
> > incorrect !<br>";
> > de postcode ook kan controleren.....
>
> En dan vallen hele volkstammen buiten de bood welke een spatie tussen de
> cijfers en letters zetten.

Er kunnen slechts 6 tekens ingevoerd worden en naast de invoerveld staat de
opmaak die gevraagd wordt.
Dit had ik al ondervangen :-)

> Postcodes beginnen ook niet met een 0 AFAIK, en de de xx00 reeks is
> vrijwel alleen voor postbussen. Dus wat versta je onder controleren?

Het gaat om een kleine algemene controle of er geen grove typefouten gemaakt
worden. Als iemand 2509 opgeeft ipv 1509, dan wordt er verder ook geen
melding van gemaakt.
Er wordt nu alleen gecontroleerd of de postcode geen erg grote onzin is....
En als iemand 0000XX als postcode invuldt, dan zal diegene er wel een reden
voor hebben......

>
> BTW die backreferences, (), zijn ook nutteloos hier.
>
> --
>
> Daniel Tryba
>

Maar toch zeker bedankt voor je opmerking(en),

Maurice

Daniel Tryba
09/06/03, 23:35
Maurice van 't Loo <maurice@nospam.nl> wrote:
>> En dan vallen hele volkstammen buiten de bood welke een spatie tussen de
>> cijfers en letters zetten.
>
> Er kunnen slechts 6 tekens ingevoerd worden en naast de invoerveld staat de
> opmaak die gevraagd wordt.
> Dit had ik al ondervangen :-)

Vanwaar de SS check dan nog? Het gewenste formaat staat er immers bij :)

Maar even serieus: laat de gebruiker het zo invullen als ze zelf leuk
vinden, strip dan alle niet toegestaande tekens (bv:[^0-9A-Z]) en
controleer dan of het inderdaad [\d{4}[A-Z]{2}] is.

>> Postcodes beginnen ook niet met een 0 AFAIK, en de de xx00 reeks is
>> vrijwel alleen voor postbussen. Dus wat versta je onder controleren?
>
> Het gaat om een kleine algemene controle of er geen grove typefouten gemaakt
> worden. Als iemand 2509 opgeeft ipv 1509, dan wordt er verder ook geen
> melding van gemaakt.
> Er wordt nu alleen gecontroleerd of de postcode geen erg grote onzin is....
> En als iemand 0000XX als postcode invuldt, dan zal diegene er wel een reden
> voor hebben......

Tsja, als je enigszin zeker wilt zijn dan moet je gebruikers om hun NAW
gegevens vragen en een kaartje sturen :)


--

Daniel Tryba