Avatar billede pcl Nybegynder
27. februar 2004 - 14:31 Der er 10 kommentarer

Dansk telefon

Er der nogern der har et regular expression der kan håndterer danske telefon numre.

Bør kunne klare disse kombinationer:

99999999
9999 9999
99 99 99 99

0045 99999999
0045 9999 9999
0045 99 99 99 99

+45 99999999
+45 9999 9999
+45 99 99 99 99

(45) 99999999
(45) 9999 9999
(45) 99 99 99 99
Avatar billede limemedia Nybegynder
27. februar 2004 - 14:54 #1
utestet, da jeg ikke ved hvilket sprog du anvender. Men ala
/^(+45 |0045 |\(45\))?(\d{2})(\s?)(\d{2})(\s?)(\d{2})(\s?)(\d{2})$/
Avatar billede nicklasb Nybegynder
27. februar 2004 - 15:08 #2
har også lige prøvet (så ikke der allerede var kommet svar.. og prøvede blot for øvelsens skyld.. er først liiige begyndt, og er langt fra god til det)

^((
  • |00)45([ ]?))?([1-9][\d]([ ]?(([\d]{2}[ ][\d]{2}[ ][\d]{2})|([\d]{3}[ ][\d]{3})|([\d]{6})))|([1-9][\d]{3}[ ][\d]{4}))$

den kan sikkert gøres kortere.. men er også mest lavet for sjov.. og for at få gode råd fra jer der er gode til det?! ;)
Avatar billede nicklasb Nybegynder
27. februar 2004 - 15:29 #3
grunden til at den blev lidt lang, var at den foreksempel godt kan undvære mellemrummet mellem 45 og nummeret.. og at man også kan gruppere i tre'er grupper.. altså for eksempel 99 999 999
Men det kan sikkert også gøres kortere alligevel.. :) (meget kortere sikkert ;)
Avatar billede Slettet bruger
27. februar 2004 - 15:43 #4
Vil du ikke godtage denne, som ellers også bruges en gang i mellem:

99 999 999

Det nemmeste vil nok være, at lave en, der er komplet ligeglad med mellemrum. For eksempel:

/^(+45|0045|\(45\))?(\s*\d){8}$/

Den tillader de tre forskellige landekoder, og derefter skal der bare være 8 cifre. Den er ligeglad med placering og antal af mellemrum.
Avatar billede nicklasb Nybegynder
27. februar 2004 - 16:36 #5
sandbox -> Det jeg prøvede at få med.. derfor hele den sidste del.. :)
og så kontrollere den også at et telefonnummer ikke kan starate med 0.. men ved ikke om det er aktuelt?

Ved du eventuelt hvordan det laves så den opfylder det samme som det jeg skrev, men blot kortere / smartere.. ?!
Avatar billede Slettet bruger
27. februar 2004 - 22:58 #6
nicklasb: Jeg havde overset, at det var derfor, at din blev så lang. Men nu fik du mig til at undersøge det, og ifølge nummerlisterne, man kan finde hos IT og telestyrelsen, er det faktisk både 0 og 1, der ikke bruges som første ciffer af de normale 8-cifrede numre.

Her kommer en, der tager højde for det også

/^(+45|0045|\(45\))?\s*[2-9](\s*\d){7}$/

Og så en modifikation, der ikke tillader mere end et mellemrum pr talgruppe:

/^(+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/

Den sidste tillader for eksempel

22 22 22 22
3 33 33 333
444 444 44

Og alle mulige andre kombinationer - så længe den bare ikke starter med 0 eller 1, og der højst er et mellemrum af gangen.
Avatar billede pcl Nybegynder
05. marts 2004 - 11:39 #7
Jeg glemte måske at sige at det er til asp.net.

Så jeres regexs, virker ikke helt korrekt.
Avatar billede midas_dk Nybegynder
05. maj 2004 - 11:41 #8
Hvis du sætter en \ foran +, så virker det faktisk ganske fint...
Avatar billede pcl Nybegynder
05. maj 2004 - 11:55 #9
så man får
\/^(+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/
eller ??
Avatar billede Slettet bruger
05. maj 2004 - 18:41 #10
Nok nærmere

/^(\+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/

Jeg ved ikke, om ASP vil have delimiters - hvis ikke, så skal det være

^(\+45|0045|\(45\))?\s?[2-9](\s?\d){7}$
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

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