|
| Smartest if if if Fra : Lasse Hedegaard |
Dato : 04-11-01 15:15 |
|
Hejsa!
Jeg skal tjekke om et telefonnummer er et mobilnummer, dvs. det skal
starte med disse numre: 2xx, 30x, 40x, 51x, 60x, 61x. Desuden må 3.
ciffer ikke være nul.
Jeg kan jo lave en masse if if if for at teste, men kan jeg ikke gøre
det i ét hug - hvordan?
venligst,
Lasse Hedegaard
--
Fjern SIM-låsen fra din mobiltelefon: http://www.simlock.dk/
Nokia, Ericsson, Siemens, Panasonic, Trium Mars.
* * * Nu også gratis operatørlogoer! * * *
| |
Mogens Meier Christe~ (04-11-2001)
| Kommentar Fra : Mogens Meier Christe~ |
Dato : 04-11-01 16:23 |
|
> Jeg skal tjekke om et telefonnummer er et mobilnummer, dvs. det skal
> starte med disse numre: 2xx, 30x, 40x, 51x, 60x, 61x. Desuden må 3.
> ciffer ikke være nul.
> Jeg kan jo lave en masse if if if for at teste, men kan jeg ikke gøre
> det i ét hug - hvordan?
Kombinér de enkelte boolske udtryk (test-udtrykket i "if(test-udtryk)")
med AND, "&&", og OR, "||"!
Husk at sætte paranteser. Altså (utestet):
$to = substr($tlf, 0,2);
if( ($to == '30' || $to == '40' || $to =='51' || $to =='60' || $to='61'
|| $tlf[0] == '2') && ($tlf[2] != '0') )
{
// Mobilnr fundet
}
--
Mvh. Mogens
www.momech.dk
| |
Jakob Færch (04-11-2001)
| Kommentar Fra : Jakob Færch |
Dato : 04-11-01 21:39 |
|
In article <9s3mg4$utm$1@news.cybercity.dk>,
"Mogens Meier Christensen" <mmc@nospam.dk> wrote:
> > Jeg skal tjekke om et telefonnummer er et mobilnummer, dvs. det skal
> > starte med disse numre: 2xx, 30x, 40x, 51x, 60x, 61x. Desuden må 3.
> > ciffer ikke være nul.
> Kombinér de enkelte boolske udtryk (test-udtrykket i "if(test-udtryk)")
> med AND, "&&", og OR, "||"!
Du kan også lære dig selv regulære udtryk. Det er godt nok lidt mere
bøvl end at skrive en lang, grim if-sætning. Til gengæld er regulære
udtryk brugbare i en masse sammenhænge, når man først har lært dem.
En søgen efter mobilnummer ville som regulært udtryk fx se sådan ud:
if (ereg("(2.|30|40|51|60|61)[1-9][0-9]{5}", $tlf)) {
// Mobilnr fundet
}
Ovenstående betyder løst forklaret:
"Led efter noget i strengen $tlf, der består af:
- 2 efterfulgt af vilkårligt tegn eller 30 eller 40 eller
51 eller 60 eller 61
efterfulgt af
- et ciffer mellem 1 og 9
efterfulgt af
- 5 vilkårlige cifre
Men hvis du aldrig har set et regulært udtryk før, skal du nok læse lidt
mere. Du kan fx starte her:
http://www.phpbuilder.com/columns/dario19990616.php3
eller i php-manualen
Mvh
Jakob
| |
Kim Emax - ayianapa.~ (05-11-2001)
| Kommentar Fra : Kim Emax - ayianapa.~ |
Dato : 05-11-01 16:27 |
|
"Jakob Færch" <tq1en8p001@sneakemail.com> skrev
> En søgen efter mobilnummer ville som regulært udtryk fx se sådan ud:
>
> if (ereg("(2.|30|40|51|60|61)[1-9][0-9]{5}", $tlf)) {
> // Mobilnr fundet
> }
næsten korrekt, dette går også igennem i dit REGEX:
$tlf = 7520202020;
Mens if (ereg("^(2.|30|40|51|60|61)[1-9][0-9]{5}$", $tlf))
ikke matcher ovenstående nummer
Til Lasse: ^ betyder at strengen skal starte med 2, 30, 40, 51, 60, 61 og $
betyder at her ender strengen. = 8 cifre i alt...
--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop
| |
Lasse Hedegaard (05-11-2001)
| Kommentar Fra : Lasse Hedegaard |
Dato : 05-11-01 16:42 |
|
Kim Emax - ayianapa.dk skrev:
>Mens if (ereg("^(2.|30|40|51|60|61)[1-9][0-9]{5}$", $tlf))
>ikke matcher ovenstående nummer
>
>Til Lasse: ^ betyder at strengen skal starte med 2, 30, 40, 51, 60, 61 og $
>betyder at her ender strengen. = 8 cifre i alt...
Yup. Nu havde jeg sat begrænsning på feltet til 8 cifre, men det er jo
fint nok at lave dobbeltcheck
Men "2w123456" går vel stadig igennem?
Kan jeg bruge denne?
if (ereg("^(2[0-9]|30|40|51|60|61)[1-9][0-9]{5}$", $tlf))
venligst,
Lasse Hedegaard
--
Fjern SIM-låsen fra din mobiltelefon: http://www.simlock.dk/
Nokia, Ericsson, Siemens, Panasonic, Trium Mars.
* * * Nu også gratis operatørlogoer! * * *
| |
Jakob Færch (05-11-2001)
| Kommentar Fra : Jakob Færch |
Dato : 05-11-01 17:13 |
|
In article <0lcdutchf6nu0kancqbpfc7r5j78c08h8g@news.inet.tele.dk>,
Lasse Hedegaard <laxxe@nospam.dk> wrote:
> Men "2w123456" går vel stadig igennem?
>
> Kan jeg bruge denne?
>
> if (ereg("^(2[0-9]|30|40|51|60|61)[1-9][0-9]{5}$", $tlf))
Jeg kan ikke huske, præcis hvordan ereg's syntaks er, men ovenstående
burde virke fint nok. Hvert af udtrykkene, der er adskilt med | er selv
et regulært udtryk, fx 2[0-9].
| |
Kim Emax - ayianapa.~ (06-11-2001)
| Kommentar Fra : Kim Emax - ayianapa.~ |
Dato : 06-11-01 22:53 |
|
"Lasse Hedegaard" <laxxe@nospam.dk> skrev
> Men "2w123456" går vel stadig igennem?
jeps
> Kan jeg bruge denne?
> if (ereg("^(2[0-9]|30|40|51|60|61)[1-9][0-9]{5}$", $tlf))
jeps, eller 2 x eregs:
if (ereg("^(2.|30|40|51|60|61)[1-9][0-9]{5}$", $tlf) && ereg("^[0-9]{8}$"),
$tlf))
afhængig af hvad du skal tjekke... det er vel et temepramentsspørgsmål om,
hvilket man bedst kan li´ at bruge
--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop
| |
Jakob Færch (05-11-2001)
| Kommentar Fra : Jakob Færch |
Dato : 05-11-01 17:11 |
|
In article <bdyF7.5229$RM3.474948@news000.worldonline.dk>,
"Kim Emax - ayianapa.dk" <newsgroup@sletdette-ayianapa.dk> wrote:
> "Jakob Færch" <tq1en8p001@sneakemail.com> skrev
>
> > En søgen efter mobilnummer ville som regulært udtryk fx se sådan ud:
> >
> > if (ereg("(2.|30|40|51|60|61)[1-9][0-9]{5}", $tlf)) {
> > // Mobilnr fundet
> > }
>
> næsten korrekt, dette går også igennem i dit REGEX:
>
> $tlf = 7520202020;
Du har dælme ret. Tak for rettelsen.
| |
|
|