Avatar billede tipsen Nybegynder
26. oktober 2003 - 13:17 Der er 12 kommentarer og
1 løsning

Nem udskrivning af telefon nummer

Hej eksperter

Jeg har et telefonnummer på formen 12345678 og vil gerne udskrive det på formen 12 34 56 78 - hvordan gøres dette nemmest, kortest og hurtigst?

$tlfnr = '12345678';
echo ???;
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 13:23 #1
<?
  $a=" 12 3 4 5 6 7 8 ";
  preg_match_all('(..?)',preg_replace('/ /','',$a),$r);
  print join(' ',$r[0]);
?>
Avatar billede tipsen Nybegynder
26. oktober 2003 - 13:25 #2
Går det ikke den modsatte vej?
Avatar billede tipsen Nybegynder
26. oktober 2003 - 13:31 #3
Bare glem min kommentar og smid et svar - jeg testede det jo lige, og selvfølgelig fungerer det... ;-)
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 13:33 #4
Ja, nu må jeg også lige ... anklage mig for at komme med forkert kode ... har
man hørt mage ... ;)

Men jeg generaliserede lige til at fjerne eventuelle mellemrum, der allerede
måtte være der, og så kan den tillige opføre sig nogenlunde fornuftigt ved
ulige antal cifre i telefonnumre.
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 13:33 #5
.
Avatar billede tipsen Nybegynder
26. oktober 2003 - 13:37 #6
Gad vide om det er muligt, med en fancy sprintf()... :-?
Avatar billede tipsen Nybegynder
26. oktober 2003 - 15:23 #7
Tjahh - min problemformulering var simpelthen ikke god nok - jeg havde kun kigget på lidt af datamaterialet og nu viser det sig, at der også er tlf-numre på formen 12345678+76 som jo gerne må blive vist som 12 34 56 78 + 76 - så er der til gengæld heller ikke flere typer tlf-numre i db'en...

Har du et godt forslag selvom du allerede har besvaret mit oprindelige spørgsmål?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:55 #8
Gæt engang - jeg havde helt glemt dig! Sådan??

<?
  $a=" 12 3 4 5 6 7 8 x 9 9";
  preg_match_all('/([^x][^x]?|x\d+)/',preg_replace('/ /','',$a),$r);
  print join(' ',$r[0]);
?>
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:56 #9
Eller

<?
  $a=" 12 3 4 5 6 7 8 x 9 9";
  preg_match_all('/([^x][^x]?|x)/',preg_replace('/ /','',$a),$r);
  print join(' ',$r[0]);
?>
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:57 #10
Ok, der står + og ikke x. Så skal du erstatte x med \+
Avatar billede tipsen Nybegynder
26. oktober 2003 - 22:09 #11
Det er smukt og jeg forstår endda, hvad der sker :-)

-det var anden udgave jeg brugte!
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 22:14 #12
Jeg synes ikke det er smukt nok - det irriterer mig at det
ikke kunne blive en "one-liner". Men det går da ... ;)
Avatar billede tipsen Nybegynder
26. oktober 2003 - 22:21 #13
Jeg troede faktisk også det kunne laves som en "one-liner", da jeg stillede spørgsmålet - lidt på samme måde, som man kan angive diverse visnings-formater i eksempelvis Excel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester