webForumDet fria alternativet

Regular Exp på nummer

4 svar · 199 visningar · startad av skyman

skymanMedlem sedan juli 20012 450 inlägg
#1

Hur gör jag för att kolla om det är ett telefonnummer?

Tack på förhand!

MatteMedlem sedan aug. 20002 975 inlägg
#2

Testa det här:

$number = "047 - 311 311";

// Och så kollar vi

$number = preg_replace("/\s/", "", $number);

if (preg_match("/^(\d{2,4}[\/-]?)?\d{5,8}$/", $number)) {
   echo "Alles Ok !";
}
skymanMedlem sedan juli 20012 450 inlägg
#3

Så denna är inte korrekt?

$pattern = ereg("^([0-9]+)([-/]*)([0-9]*)$",$fax);
MatteMedlem sedan aug. 20002 975 inlägg
#4

Den gör ungefär samma sak.

Regexpar med preg anses ändå vara lite snabbare än ereg.

Sen är de lite annorlunda uppbyggda. I min godkänns även telefonnummer utan riktnummer. Har du krav på riktnummer så blir det så här:

if (preg_match("/^\d{2,4}[\/-]?\d{5,8}$/", $number)) {

Skillnaden ligger då i att din ereg-sats säger: Ett eller flera tecken som är siffror, följt av noll eller flera skiljetecken som får vara - eller /, följt av ett eller flera tecken som är siffror.

I min justerade sats gör jag samma sak, med den skillnaden att jag begränsar det som är före skiljetecknet till mellan 2 och fyra tecken och det som är efter till fem till åtta tecken. En skillnad till är att jag säger att det får finnas max ett skiljetecken.

Sen har jag i min kod tagit bort eventuella mellanslag före jämförelse. Vill du inte godkänna dessa i din inmatning så tar du bort denna sats:

$number = preg_replace("/\s/", "", $number);
skymanMedlem sedan juli 20012 450 inlägg
#5

Om det är snabbare så kör jag med det :)
Tack så mycket!

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)