Goedendag phprs

Ik heb geprobeerd een klein controle te bouwen om een telefoonnummer te controleren. maar faalde hierbij!
<?php
case T_TELNR:
if(empty($inhoud) || !eregi('^[0-9-]{4})*-[0-9]{7}$', $inhoud)) {
return false;
}
else{
return true;
}
break;
?>

wat ik wil hebben:
dat je een net nr hebt, dash ertussen en dan de rest van de tel nr.
bv. 010-1234567

Dus als ik 0101234567 intoets en laat controleren moet ie een fout geven(false), maar als ik 010-1234567 dat ie het wel gewoon doet(true meegeeft).

maar met de code boven laat ie hem gewoon doorgaan, zelfs als er geen dash tussen zit(0101234567).
wie kan mij helpen, tnx :)

p.s. het geld alleen voor de telnr's binnen NL
misschien moet je die ! voor eregi weghalen?

en hij controleert nu trouwens ook op precies 4 cijfers voor de - (als ik het goed heb)

Ben verder niet echt een reg-ex expert! dus flame me niet als ik fout zit !
<?php
case T_TELNR:
if(empty($inhoud)) {
return false;
}
elseif(eregi('^[0-9-]{4})*-[0-9]{7}$', $inhoud)){
return true;
}
else{
return false;
}
break;
?>
Misschien de - in je regex escapen door er een \ voor te zetten. - heeft vast wel een of andere meta-betekenis. Verder heb je een ) in je regex staan, maar geen (. dus die lijkt mij ook een beetje overbodig.
@Joshua
! geprobeerd weg te halen, en sommige net nr's in NL zijn ook 4 cijferig :)

@jordy
hmm 0102134567 werkt nog steeds, inplaats van 010-1234567

@Jelmer
escapen gedaan en ')' weg gehaald etc.

Wil nie werken :(, wat doe ik fout :'(
Komt ie wel in de case? Is $inhoud wel gevuld?
jawel, hij is gevuld
hmmm

<?php
$inhoud = "023-4256677";

if (eregi('(^[0-9-]{3}\-[0-9-]{7}$)', $inhoud) || eregi('(^[0-9-]{4}\-[0-9-]{6}$)', $inhoud)) {
echo "OK, $inhoud matcht!";
}
else{
echo "Oops, $inhoud matcht niet!";
}
?>

zo lijkt ie het wel te doen ;x(getest), later ff uitvoerig testen :)
k de code werkt, maar nu wil ik dat ie met een NUL(0) MOET beginnen. Dus het moet altijd 010,020 etc. Het mag dus niet met een 110 of 220 etc beginnen. Ik heb daar ook naar lopen zoeken, maar krijg het niet echt voor elkaar ;x.

iemand een idee? :)
tnx
if(substr($tel, 0, 1) != "0")
{ echo 'fout';
}


Edit: Ik weet niks van eregi()
@SanThe
Ik heb het liever in een eregi vandaar :D
tnx tho :D

@lissy
tnx, ik heb ook deze artikelen bekeken.

Ik heb het geprobeer zoals de artikel aangaf het te doen. Hun controleren naar de jaar, ik wilde het ook zo ongeveer proberen maar het lukte mij niet.

volgens mij zie ik iets gewoon over het hoofd!!

Wie kan mij helpen :)
tnx

Reageren