|  | 		    
					
        
         
          
         
	
          | |  | 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
 
 
 
 
 |  |  | 
 |  |