Avatar billede amikk Nybegynder
15. november 2005 - 15:45 Der er 14 kommentarer og
1 løsning

"intelligent replace-funktion"

Hej

Jeg sidder og bøvler med et relativt simpelt cms-system. I den sammenhæng slog det mig om jeg ikke jeg kunne lave det således at man kan sætte billeder ind vha. tekst-streng.

Sådan at når en bruger i et textarea fx skriver

Bla bla bla bla [img:billede.png] bla bla bla

Var der en funktion i ens validering som blev triggeret på [img:xxxxxx] og kunne replace denne tekststreng med <img src="billede.png" border="0" alt="" />

Håber I kan følge hvad jeg mener :-)

På forhånd tak!
Avatar billede plx Nybegynder
15. november 2005 - 15:52 #1
Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[img:(.*?)\]"

tekst = re.Replace(tekst, "<img src=""$1"" border=""0"" alt="""" />")
Avatar billede amikk Nybegynder
15. november 2005 - 15:55 #2
Hej plx! Tak for hurtig response!

Den ser snørklet ud, kan jeg lokke dig til at bøje den i neon for mig, og illustrere et lille eksempel?

Tak endnu en gang
Avatar billede fennec Nybegynder
15. november 2005 - 16:17 #3
Det hedder "regular expression" og er et meget kraftfuld værktøj, men med en ligeså indviklet syntax. I dette tilfælde indeholder din kode endog special tegn som skal escapes. E har en kategori til det:
http://www.eksperten.dk/spm/Programmering/RegExp/
Avatar billede amikk Nybegynder
16. november 2005 - 12:08 #4
Jeg prøver at kigge i den nævnte kategori. Jeg synes I begge fortjener point venligst læg et svar tak
Avatar billede fennec Nybegynder
16. november 2005 - 12:14 #5
Jeg skal ikke have point. De må gå til plx.
.o) <-- One Eyed Jack
Avatar billede amikk Nybegynder
16. november 2005 - 14:35 #6
Nu har jeg læst lidt rundt i kategorien RegExp og læst lidt på http://www.regular-expressions.info/quickstart.html - desværre uden at blive synderligt klogere...

Jeg kan godt få tidligere nævnte kode til at fungere men, med det sagt steg behovet en grad. Dels for indlæringens skyld og for udbyttets...

Input ser jeg helst som værende således [img:billede.png;position:right;] output skulle gerne være <img src="billede.png" border="0" alt="" style="float:right;" /> og hvordan bærer jeg mig ad med dette?

Jeg kan ikke umiddelbart se sammenhængen i brugen af \ og .*? samt $1. Jeg forestiller mig at $1 er et wildcard så man i teorien kunne have $2,$3 osv men disse skal vel næsten defineres ud fra \ og .?* eller ... ??

Håber I vil være så venlige at skubbe mig lidt igang. På forhånd tak
Avatar billede fennec Nybegynder
16. november 2005 - 15:23 #7
For hver () du har i pattern kan du sætte indholdet ind igen med $x

re.Pattern = "\[img:(.*?);(.*?);\]"
tekst = re.Replace(tekst, "<img src=""$1"" border=""0"" style=""$2"" alt="""" />")

Styrken i RegEx ligger i at kende kommandoerne/specialtegn. Jeg bruger denne til at slå op i :o)
http://msdn.microsoft.com/library/en-us/script56/html/js56jsgrpRegExpSyntax.asp?frame=true

Jeg har endnu ikke fundet et godt sted at lære RegEx, så måske du skulle smutte ned på biblioteket, og låne en bog om det (hvis de da kan lånes)

Jeg lærte det gennem forskellige eks jeg stilte mig ud fra forskellige tekster. Ved at udskifte matchen med X, kunne jeg se hvad der skete.

Prøv at lave en der udskifte alle tal med X i denne streng:
Tekst = "123aaAA34567abc"

Bagefter kan du så udskifte bogstaver, alle a (stor eller lille), kun små a, kun aa (så enlig a forbliver), kun de sidste bogstaver, kun de sidste tal, alt imellem 2 a ('AA34567') osv.
Avatar billede plx Nybegynder
16. november 2005 - 15:28 #8
re.Pattern = "\[img:(.*?)(?:;(.*?))?\]"
tekst = re.Replace(tekst, "<img src=""$1"" border=""0"" alt="""" style=""$2"" />")

Så er style attributer valgfrie

Det er lidt problematisk, hvis du i et enkelt udtryk vil ændre "position" til "float". Hverken denne eller fennec's gør dette
Avatar billede amikk Nybegynder
16. november 2005 - 16:01 #9
Hej Fennec og plx! Jeg kan se jeg har været den heldige kartoffel at få fat på to eksperter :-) Jeg har noget rimlig konkret at gå ud fra her og vil sysle lidt med det i aften når min hustru tillader mig det :-) læg venligst svar

Tak endnu en gang. Det er meget venligst af Jer at hjælpe mig så godt igang
Avatar billede fennec Nybegynder
16. november 2005 - 16:08 #10
.o) <-- One Eyed Jack
Avatar billede amikk Nybegynder
16. november 2005 - 16:14 #11
plx - læg venligst svar her

http://exp.dk/spm/665042
Avatar billede fennec Nybegynder
16. november 2005 - 16:19 #12
Jeg skulle da ikka have alle point, så snup lige nogen tilbage igen :o)
http://exp.dk/spm/665045
Avatar billede amikk Nybegynder
16. november 2005 - 16:21 #13
Nixen :-)
Avatar billede amikk Nybegynder
16. november 2005 - 16:21 #14
God hjælp fortjener også fair belønning
Avatar billede fennec Nybegynder
16. november 2005 - 16:29 #15
Så siger jeg da tak for point og karma :o)
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger to sektionschefer til Systemafdelingen i Hvidovre

Forsvarsministeriets Materiel- og Indkøbsstyrelse

SAP Bruger- og rolleadministrator ved Forsvarsministeriets Regnskabsstyrelse

Forsvarsministeriets Materiel- og Indkøbsstyrelse

MLOps Engineer til opbygning af Forsvarets nye AI-platform

Everllence

Software Engineer

Capgemini Danmark A/S

Open Application (Denmark)