Avatar billede websam Nybegynder
09. marts 2004 - 13:29 Der er 6 kommentarer og
1 løsning

Hvordan gør jeg det med RegExp ?

Hejsa,

Jeg vil vide om der er nogen der ved hvordan jeg skifter f.eks

<STRONG>En eller anden tekst</STRONG>

Ud med :

<b>En eller anden tekst</b>

Og det skal være med RegExp ?

/Websam
Avatar billede deeflate Nybegynder
09. marts 2004 - 15:15 #1
En simpel måde kunne være:

<%
tekst = "jeg tester <STRONG>lige</STRONG>"

Dim regEx  ' Create variable.
Set regEx = New RegExp  ' Create a regular expression.
regEx.Pattern = "STRONG>"  ' Set pattern.
regEx.IgnoreCase = True  ' Set case insensitivity.
regEx.Global = True  ' Set global applicability.

tekst = regEx.replace(tekst,"b>")
%>
Avatar billede deeflate Nybegynder
09. marts 2004 - 15:20 #2
Og her som funktion:

<%
Function RegExpReplace(foer,efter,str)
  Dim regEx  ' Create variable.
  Set regEx = New RegExp  ' Create a regular expression.
  regEx.Pattern = foer & ">"  ' Set pattern.
  regEx.IgnoreCase = True  ' Set case insensitivity.
  regEx.Global = True  ' Set global applicability.
  RegExpReplace = regEx.replace(str,efter & ">")
End Function

tekst = "jeg tester <STRONG>lige</STRONG>"

response.Write RegExpReplace("STRONG","b",tekst)
%>
Avatar billede websam Nybegynder
09. marts 2004 - 16:24 #3
Ok det ser fornuftigt ud men hvad så når jeg skal replace på mere end blot STRONG men måske oxo på EM i en og samm ombæring skal jeg køre teksten igennem functionen flere gange for det er jo ikke ret smart :o)

/Websam
Avatar billede deeflate Nybegynder
09. marts 2004 - 17:26 #4
Det kommer om på om du også vil have lavet emphasized til bold, eller om du f.eks. vil have det lavet til italic. Hvis det også skal være bold, kan du inkludere det i dit pattern, sådan her:

<%
Function RegExpReplace(foer,efter,str)
  Dim regEx  ' Create variable.
  Set regEx = New RegExp  ' Create a regular expression.
  regEx.Pattern = foer ' Set pattern.
  regEx.IgnoreCase = True  ' Set case insensitivity.
  regEx.Global = True  ' Set global applicability.
  RegExpReplace = regEx.replace(str,efter & ">")
End Function

tekst = "jeg tester <STRONG>lige</STRONG> på det <EM>her</EM>"

response.Write RegExpReplace("(STRONG>)|(em>)","b",tekst)
%>

Ellers kan du bare kalde funktionen to gange, sådan her:

<%
Function RegExpReplace(foer,efter,str)
  Dim regEx  ' Create variable.
  Set regEx = New RegExp  ' Create a regular expression.
  regEx.Pattern = foer ' Set pattern.
  regEx.IgnoreCase = True  ' Set case insensitivity.
  regEx.Global = True  ' Set global applicability.
  RegExpReplace = regEx.replace(str,efter & ">")
End Function

tekst = "jeg tester <STRONG>lige</STRONG> på det <EM>her</EM>"

tekst = RegExpReplace("(STRONG>)","b",tekst)
response.write RegExpReplace("(em>)","i",tekst)
%>
Avatar billede websam Nybegynder
09. marts 2004 - 18:02 #5
Jeg var selvfølgelig på udkig efter en function der kunne lave STRONG om til b, EM om til i osv. i et og samme hug, men det sidste eksempel virker fint så den må jeg bruge indtil jeg finder noget smartere :o)

/Websam
Avatar billede websam Nybegynder
09. marts 2004 - 18:07 #6
Så jeg gør som følger med din function :

<%
Function RegExpReplace(foer,efter,strHtml)
  Dim regEx
  Set regEx = New RegExp
  regEx.Pattern = foer
  regEx.IgnoreCase = True
  regEx.Global = True
  RegExpReplace = regEx.replace(strHtml,efter & ">")
End Function
%>

og bruger så følgende til at skifte tags ud med :

<%
If Request.Form("S1") <> "" Then
  Dim Text, Text1, Text2
  Text = Request.Form("S1")
  Text1 = RegExpReplace("STRONG>", "b", Text)
  Text2 = RegExpReplace("EM>", "i", Text1)
  Response.Write Server.HTMLEncode(Text2)
End If
%>

og det virker fint :o)

/Websam
Avatar billede deeflate Nybegynder
09. marts 2004 - 18:49 #7
OK :)
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