/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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.

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste