Just nu i M3-nätverket
Gå till innehåll

Hur tar jag bort kod-taggar


Admini

Rekommendera Poster

Hej

Jag sparar text skrivet i en textarea m.h.a ckEditor, där det är möjligt att formatera texten som i ett word-program med taggar och allt.

 

Nu vill jag ha möjligheten att visa texten i minimal format vid behov, d.v.s utan format-taggar.

<font face="blabla">Min Text</font>

 

I ovan exempel vill jag kunna ta bort allt utom "Min Text"

 

Hur gör jag detta?

 

Tack på förhand

Länk till kommentar
Dela på andra webbplatser


<%
txt = "<font face=""blabla"">Min Text</font>"
Set regex = New RegExp

With regex
.Pattern = "<[^>]+>"
.IgnoreCase = true
.Global = true
.Multiline = true
End With

txt2 = regex.Replace(txt, "")

Response.Write(txt2)
%>
Länk till kommentar
Dela på andra webbplatser

<%
    txt = "<font face=""blabla"">Min Text</font>"
    Set regex = New RegExp

    With regex
        .Pattern = "<[^>]+>"
        .IgnoreCase = true
        .Global = true
        .Multiline = true
    End With

    txt2 = regex.Replace(txt, "")

    Response.Write(txt2)
%>

Tack

Kan du också förklara vad (^) och (+) i följande rad betyder:

.Pattern = "<[^>]+>"

 

Tack igen

Länk till kommentar
Dela på andra webbplatser

Nej egentligen kan jag inte det. När det gäller regular expressions så brukar jag söka upp ett uttryck som påstås göra det jag vill, sen testar jag mig fram.

 

Men det finns en beskrivning här.

http://www.regexlib.com/CheatSheet.aspx

Här kommer en följdfråga:

Hur tar jag bort och/eller neutraliserar citattecken (')  och (") 

 

Eller är det det man ska göra med dem?

 

Tack

Länk till kommentar
Dela på andra webbplatser

Är det enstaka tecken så är det nog enklast att bara göra en Replace på dem. 

text = Replace(Replace(text, "'", ""), """", "")
Länk till kommentar
Dela på andra webbplatser

 

Är det enstaka tecken så är det nog enklast att bara göra en Replace på dem. 

text = Replace(Replace(text, "'", ""), """", "")

Jag precis. 

Jag sparar även bilder mitt i texten.

Sedan när jag vill visa en miniatyr av bilden, så försöker jag "fånga" bilden så här :

mTal=InStr(1, strText, "<img ")            '--- eftersom bilden börjar med detta ---'
nText=Mid(strText, mTal, mTal+3)       '--- här försöker jag extrahera 4 tecken med början (<img)
Response.Write "nText: '"&nText&"'<br>"     '--- men jag fångar inte det.
 
Vad är fel?
Tacksam för hjälp
Länk till kommentar
Dela på andra webbplatser

Återigen så är regular expressions något som kan hjälpa dig! Det gäller bara att hitta rätt expression.

src[^>]*[^/].(?:jpg|png|gif)(?:\"|\')

Detta uttryck kommer resultera i att du får ut alla src attribut på bilderna i formatet src="bild.jpg" till exempel. Sen är det enkelt att göra en replace på " och src=.

Länk till kommentar
Dela på andra webbplatser

Återigen så är regular expressions något som kan hjälpa dig! Det gäller bara att hitta rätt expression.

src[^>]*[^/].(?:jpg|png|gif)(?:\"|\')

Detta uttryck kommer resultera i att du får ut alla src attribut på bilderna i formatet src="bild.jpg" till exempel. Sen är det enkelt att göra en replace på " och src=.

 

Du menar att använda det så här:

.Pattern = src[^>]*[^/].(?:jpg|png|gif)(?:\"|\')

 

Eller?

Länk till kommentar
Dela på andra webbplatser

Du menar att använda det så här:

.Pattern = src[^>]*[^/].(?:jpg|png|gif)(?:\"|\')

 

Eller?

Jag får fel på fjärde tecknet från höger/slutet (det vertikala strecket)

Länk till kommentar
Dela på andra webbplatser

 

Uttrycket måste sitta mellan fnuttar.

.Pattern = "src[^>]*[^/].(?:jpg|png|gif)(?:\""|\')"

Så ser min kod ut nu:

    txt = strText
    Set regex = New RegExp

    With regex
        .Pattern = "src[^>]*[^/].(?:jpg|png|gif)(?:\""|\')"
        .IgnoreCase = true
        .Global = true
        .Multiline = true
    End With

    txt2 = regex.Replace(txt, "")

    Response.Write(txt2)

    Response.Write(txt2)

 

Men den tar bort bilden helt. Var är bilden nu?

Länk till kommentar
Dela på andra webbplatser

Så ser min kod ut nu:

    txt = strText
    Set regex = New RegExp

    With regex
        .Pattern = "src[^>]*[^/].(?:jpg|png|gif)(?:\""|\')"
        .IgnoreCase = true
        .Global = true
        .Multiline = true
    End With

    txt2 = regex.Replace(txt, "")

    Response.Write(txt2)

Men den tar bort bilden helt. Var är bilden nu?

Länk till kommentar
Dela på andra webbplatser

Kolla på länken jag skickade ovan angående hur man gör matches med regex i vbscript. Där har du ett exempel på hur man gör för att hämta ut information från texter.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...