Avatar billede neocron Nybegynder
15. august 2007 - 00:32 Der er 4 kommentarer og
1 løsning

RegExp "ID#123456" til klikbar URL

Hej.
Jeg har en lille sag jeg håber I kan give mig en hånd med.

Jeg har brug for at kunne skrive "ID#123456" i et tekstfejlt og så skal en regexp konverteret den til følgende sætning (det er faktisk kun id'et som bruges her, altså 123456. Alt det andet i strengen er bare for at gøre det nemmere for brugerne, således at man kan refererer til andre emner og gå direkte til dem:

"<a href="http://minurl.dk/overview.php?id=123456">ID-123456</a>".

Den skal dog være lidt fleksibel (lidt krævende er man vel? ;))

Den skal kunne godtage ét mellemrum på hver side af # og også godkende hvis der ikke er mellemrum eller måske kun et mellemrum på en side. "IT" skal desuden også være case-insensitive. Dvs:

ID # 123456 = ok
id#123456 = ok
id # 123456 = ok
iD # 123456 = ok
ID# 123456 = ok
ID #123456 = ok
ID    #123456 = ikke ok

Jeg håber det er forklaret tydeligt nok hvad jeg ønsker at opnå. Grunden til at "ID" og "#" skal med er for simplicitetens skyld for dem skal benytte sig af det.
Avatar billede neocron Nybegynder
15. august 2007 - 00:33 #1
Der er desuden ikke nogen max længe på selve nummeret (id'et). Starter fra 1 og kører opefter. 123456 er bare et groft eksempel :)
Avatar billede erikjacobsen Ekspert
15. august 2007 - 00:49 #2
Sådan?

  $tekst = "ID # 123456 = ok
id#123456 = ok
id # 123456 = ok
iD # 123456 = ok
ID# 123456 = ok
ID #123456 = ok
ID    #123456 = ikke ok";

$tekst= preg_replace('/id\s?#\s?(\d+)/i','<a href="http://minurl.dk/overview.php?id=$1">ID-$1</a>',$tekst);
Avatar billede neocron Nybegynder
15. august 2007 - 00:53 #3
Utrolig. Lige hvad jeg søgte. Tør jeg spørge om du kan uddybe hvad de forskellige, skal vi kalde dem operatorer?, gør? :) Smid et svar hvis du gerne vil have point (jeg mener at huske at du ikke samler - men ret mig om jeg ta'r fejl) - igen, mange mange tak!
Avatar billede erikjacobsen Ekspert
15. august 2007 - 13:55 #4
Nej tak, ingen point.

Der står

  1) Teksten "id"
  2) efterfulgt af 0 eller 1 whitespace (mellemrum, tab etc)
  3) efterfulgt af #
  4) efterfulgt af 0 eller 1 whitespace (mellemrum, tab etc)
  5) efterfulgt af et antal cifre - registreret i gruppe nummer 1  ($1)
  6) /..../i  - her betyder i-et case-Insensitive
  7) Erstattes med <a href="http://minurl.dk/overview.php?id=$1">ID-$1</a>
    hvor $1 er teksten fra punkt 5)
Avatar billede neocron Nybegynder
18. august 2007 - 16:02 #5
Tusind tak for det ihvertfald, Erik :)
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
Kurser inden for grundlæggende programmering

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