17. november 2005 - 09:30Der er
12 kommentarer og 2 løsninger
Simpel replace funktion til at erstatte font med span?
Hej...
Jeg sidder og roder rundt i et forholdsvis begrænset opdateringsmodul, som næsten indsætter flere dumme koder ind end hvis man lavede en hjemmeside i Word.
Problemet er at de font-størrelser man kan vælge, er -2, -1, 1, osv. Det er jo ikke praktisk.
Nu har jeg så siddet og luret lidt på regular expressions, men jeg fatter slet ikke hvordan man definerer de patterns der. Det er ikke logisk for mig.
Hvordan vil en replace funktion med reg. exp, der tager en hel string, og erstatter eksempelvis <font size=-2 color=#c0c0c0> med <span style="color: #c0c0c0; font-size: 10px;"> og samtidigt erstatter </font> med </span>?
Og nu hvor vi er i gang, så sletter alle <TBODY> og </TBODY> tags, da de overflødige. :-D
Jeg går ud fra at funktionen er noget der bliver kaldt når man gemmer sin ASP side via. opdateringsmodulet, så det er vel ikke muligt at se ændringerne i sin IFRAME mens man formaterer? Lige nu bruger den den her til at ændre font-størrelsen i IFRAMEN kaldet myEditor:
onChange="java script:var i = this.selectedIndex;doFormat('FontSize',this.options[i].value);document.myEditorForm.fontsize.selectedIndex=0;"
og doFormat ser sådan her ud:
function doFormat(command,argument) { frames.myEditor.focus() var tr = frames.myEditor.document.selection.createRange(); tr.execCommand(command,false, argument) tr.select() frames.myEditor.focus() }
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
tbody-tags er absolut ikke overflødige, de er faktisk obligatoriske for at renderingsmaskinerne kan tegne tabellerne ordentligt, så de indsættes automatisk af alle browsere, hvis man ikke selv har indsat dem !o]
-- og så gemte du en væsentlig oplysning midt inde i teksten, da du sikkert i asp har brug for det til vbscript, som jeg ikke er inde i ...
-- jeg kan ikke forestille mig, at det er muligt at gøre det i et hug, og slet ikke med forskellige variabler (hrm, tjah, måske kan der laves noget søgning, som jeg ikke har fod på !-)
Oh ... ja det er ASP og VBScript jeg kører det i...
Er tbody ikke overflødige? Jeg synes aldrig jeg ser nogen bruge dem.. så jeg tænkte at det var et fortidslevn.. Whatta ya know.. :)
Hvordan fungerer det pattern der? Det kunne være rart at nogenlunde forstå det, så jeg evt. kan lære noget af det.. :)
F.eks, hvordan ved den "<span style='color:#$1 at det er farvekoden den skal tage, og f.eks. ikke indsætte nr 2 variabel.. og hvordan defineres de oppe i pattern?
() bruges til at gruppere (op til 9 grupper !-) med, og en gruppe kan uddrages som en variabel, og endda genbruges inden for den samme regexp !o]
I det ovenstående pattern er der kun følgende specialiteter ellers fungerer det bare ved at genkende tegnene bogstaveligt ...
([a-z\d]{6}) Hov, det skulle være [a-f\d] !-)
Det betyder, at der skal være præcis 6 {6} tegn, som forekommer i intervallet a-f eller er et tal (\d - digit)
[] bruges til sætte enkelttegn lige gyldige, altså en slags a eller b eller c eller ...
([^<]*?)
^ inde i [] betyder Not in, altså skal den tage et vilkårligt antal (* betyder 0 eller flere) tegn, som ikke er < ...
? betyder non-greedy, dvs. at den stopper ved den første forekomst af <-tegnet; normalt er regexps nemlig greedy, de forsøger at matche så meget som muligt.
-- og du skal være opmærksom på, at specialtegn måske skal escapes, f.eks. er det i ovenstående nødvendigt at skrive \\d, hvis den skal bruges i en javascript RegExp-constructor
Aaah nice, det forstår jeg nogenlunde... Men lad os nu sige at der er flere forskellige <font> tags i dokumentet.. Nogle der definerer både color og size, og andre der måske kun definerer size eller color. Så er der jo lige pludseligt flere forskellige patterns.. Hvad gør man så?
Jo tak det er jeg klar over.. jeg synes bare ikke det ligefrem vrimler med editorere til CMS der er W3C kompatible eller som man kan bruge acceptabelt... i hvert fald ikke i forbindelse med ASP... Du har tilfældigvis ingen ledetråde?
Anyways, smid et svar så du kan få point for hjælpen. :)
Tjah, du kan jo stikke mig 15-30 point, men du skal absolut selv beholde langt de fleste !-)
-- og du har helt ret med editorer, stort set alle, inklusive M$ dhtml-editor skriver elendig html3.2-kode, hvilket ikke er det smarteste, hvis man prøver at skrive en god mark-up ,-(
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.