/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Reg exp, Ucase tags til Lcase tags
Fra : Jacob Nielsen


Dato : 10-07-03 20:24

Hej

Mit problem er at jeg har et formular felt der bliver submittet med nogle
html tags. Disse er ucase, f.eks. <IMG.. osv., men jeg vil gerne ha' dem til
at være lcase så img tag'en istedet vil se således ud: <img..

Til dette har jeg lavet en funktion der finder alle html tags i det
submittede, men jeg har store problemer med derefter at konvertere dem til
lcase. Funktionen ser således ud:

Function funcLCaseHTMLTags(strHTML)
Dim objRegExp, strTagLcase

strTagLcase = strHTML

Set objRegExp = New objRegExp
objRegExp.IgnoreCase = True
objRegExp.Global = True

objRegExp.Pattern = "<[^>]*>"

strTagLcase = objRegExp.Replace(strTagLcase, lcase(strTagLcase))

Set objRegExp = Nothing

funcLCaseHTMLTags = strTagLcase
End Function

Problemet består i at funktionen returnerer flere dubletter af det der
bliver parset til den. Der sker selvfølgelig fordi at jeg i linien
strTagLcase = objRegExp.Replace(strTagLcase, lcase(strTagLcase)) replacer en
html-tag med hele indholdet af strengen istedet for bare at konvertere den
tag til lcase, men hvordan skal jeg bære mig ad med det?

Mvh. Jacob



 
 
Torben Brandt (11-07-2003)
Kommentar
Fra : Torben Brandt


Dato : 11-07-03 09:00

Jacob Nielsen wrote:
> Hej
>
> Mit problem er at jeg har et formular felt der bliver submittet med nogle
> html tags. Disse er ucase, f.eks. <IMG.. osv., men jeg vil gerne ha' dem til
> at være lcase så img tag'en istedet vil se således ud: <img..
>
> Til dette har jeg lavet en funktion der finder alle html tags i det
> submittede, men jeg har store problemer med derefter at konvertere dem til
> lcase. Funktionen ser således ud:
>
> Function funcLCaseHTMLTags(strHTML)
> Dim objRegExp, strTagLcase
>
> strTagLcase = strHTML
>
> Set objRegExp = New objRegExp
> objRegExp.IgnoreCase = True
> objRegExp.Global = True
>
> objRegExp.Pattern = "<[^>]*>"
>
> strTagLcase = objRegExp.Replace(strTagLcase, lcase(strTagLcase))
>
> Set objRegExp = Nothing
>
> funcLCaseHTMLTags = strTagLcase
> End Function
>
> Problemet består i at funktionen returnerer flere dubletter af det der
> bliver parset til den. Der sker selvfølgelig fordi at jeg i linien
> strTagLcase = objRegExp.Replace(strTagLcase, lcase(strTagLcase)) replacer en
> html-tag med hele indholdet af strengen istedet for bare at konvertere den
> tag til lcase, men hvordan skal jeg bære mig ad med det?

Jeg tror følgende vil kunne hjælpe dig, men det er ikke så elegant en
løsning :)

Du bruger .Execute-funktionen i stedet for. Så får du en collection af
Match-objekter, der hver indeholder ét af HTML-taggene.
Et Match-objekt indeholder også information om hvor i stregen det blev
fundet og hvor lang Match'en er, så for hvert Match-objekt kan du tage
stregene i den oprindelige streng op til starten af det fundne
(Match.FirstIndex), så indsætter du LCase(Match.Value) og springer
Match.Length frem i den oprindelige streng, inden du tager resten af den.

Håber det giver lidt inspiration,
Torben


Jacob Nielsen (11-07-2003)
Kommentar
Fra : Jacob Nielsen


Dato : 11-07-03 16:11

"Torben Brandt" <name@domain.invalid> wrote in message
news:3F0E6E73.9040401@domain.invalid...
> Jacob Nielsen wrote:
> > Hej
> >
> > Mit problem er at jeg har et formular felt der bliver submittet med
nogle
> > html tags. Disse er ucase, f.eks. <IMG.. osv., men jeg vil gerne ha' dem
til
> > at være lcase så img tag'en istedet vil se således ud: <img..
> >
> > Til dette har jeg lavet en funktion der finder alle html tags i det
> > submittede, men jeg har store problemer med derefter at konvertere dem
til
> > lcase. Funktionen ser således ud:
> >
> > Function funcLCaseHTMLTags(strHTML)
> > Dim objRegExp, strTagLcase
> >
> > strTagLcase = strHTML
> >
> > Set objRegExp = New objRegExp
> > objRegExp.IgnoreCase = True
> > objRegExp.Global = True
> >
> > objRegExp.Pattern = "<[^>]*>"
> >
> > strTagLcase = objRegExp.Replace(strTagLcase, lcase(strTagLcase))
> >
> > Set objRegExp = Nothing
> >
> > funcLCaseHTMLTags = strTagLcase
> > End Function
> >
> > Problemet består i at funktionen returnerer flere dubletter af det der
> > bliver parset til den. Der sker selvfølgelig fordi at jeg i linien
> > strTagLcase = objRegExp.Replace(strTagLcase, lcase(strTagLcase))
replacer en
> > html-tag med hele indholdet af strengen istedet for bare at konvertere
den
> > tag til lcase, men hvordan skal jeg bære mig ad med det?
>
> Jeg tror følgende vil kunne hjælpe dig, men det er ikke så elegant en
> løsning :)
>
> Du bruger .Execute-funktionen i stedet for. Så får du en collection af
> Match-objekter, der hver indeholder ét af HTML-taggene.
> Et Match-objekt indeholder også information om hvor i stregen det blev
> fundet og hvor lang Match'en er, så for hvert Match-objekt kan du tage
> stregene i den oprindelige streng op til starten af det fundne
> (Match.FirstIndex), så indsætter du LCase(Match.Value) og springer
> Match.Length frem i den oprindelige streng, inden du tager resten af den.
>
> Håber det giver lidt inspiration,

Det gør det i hvert fald. Mange tak for svaret :)

Mvh. Jacob



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408848
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste