> 
> Und an Claudius direkt h�tt ich noch ne Frage wegen den 
> verschachtelten
> Tags:
> Wie soll das praktisch laufen von hinten her(selbes problem 
> meiner Frage
> oben)

Von hinten her muss man halt bloss von uebereinstimmungen.count-1 nach 0
z�hlen... Also ohne for each..
�ber den submatch(0) bekommst Du den tagnamen und wenn du diese art tags
nich willst, dann bekommst �ber �bereinstimmung.firstindex und .length
die genaue position des geasmten tags, den du dann �ber
string-bearbeitungsfunktionen - in diesem fall left und right -
ausschneidest.

> und dann findet er ja nur sagen wir das erste endtag(wobei 
> nur der Tagname
> gefunden wird)

Nein, es wird das gesamte endtag gefunden... Nur der erste submatch
enth�lt nur den tagnamen.

> woher weis er dann welches anfangstag zum gefundenen geh�rt 
> wenn es mehrere
> gibt oder anfangstag garnicht vorhanden ist?

Das ist alles unwichtig. Wenn ich z.B. keine table-tags zulassen will,
dann schneid ich einfach alle table-tags raus, egal ob sie passend
zueinander gesetzt sind oder nicht...

�brigens solltest Du nat�rlich nicht definieren welche tags Du nicht
haben willst, sondern nat�rlich nur die, die Du zulassen willst und
alles andere rausl�schen...

Hoffe jetzt ist alles klar, sonst frag einfach wieder nach,

Claudius


> 
> Dank und Gru�
> 
> #### 1 ####:
> Set Uebereinstimmungen = regAusdr.Execute(message)
> If Uebereinstimmungen.count > 0 Then
> For Each Uebereinstimmung in Uebereinstimmungen
>      f_tag=Uebereinstimmung.submatches(0)
>      text=Uebereinstimmung.submatches(1)
>      wert=Uebereinstimmung.value
>      start=Uebereinstimmung.firstindex
>      l_wert=Uebereinstimmung.length
>      l_text=l_wert-((len(f_tag)*2)+5)
>           Select Case f_tag
>           Case "b"
>                 retstr=retstr & f_tag  (bis) l_text  'zur kontrolle
>      End select
> next
> response.write retstr
> else
>  response.write "Keine �bereinstimmungen"
> endif
> 
> #### 2 ####:
> Set Uebereinstimmungen = regAusdr.Execute(message)
> If Uebereinstimmungen.count > 0 Then
> For x = 0 to Uebereinstimmungen.count
>      f_tag=Uebereinstimmungen(x).submatches(0)
> (Fehler: ' Ung�ltiger Prozeduraufruf oder ung�ltiges Argument ' )
>      text=Uebereinstimmungen(x).submatches(1)
>      wert=Uebereinstimmungen(x).value
>      start=Uebereinstimmungen(x).firstindex
>      l_wert=Uebereinstimmungen(x).length
>      l_text=l_wert-((len(f_tag)*2)+5)
> 
>      Select Case f_tag
>           Case "b"
>                 retstr=retstr & f_tag  (bis) l_text  'zur kontrolle
>      End select
> next
> response.write retstr
> else
>  response.write "Keine �bereinstimmungen"
> endif
> 
> Gru�
> ----- Original Message -----
> From: "Claudius Ceteras" <[EMAIL PROTECTED]>
> To: "ActiveServerPages German" <[EMAIL PROTECTED]>
> Sent: Wednesday, March 20, 2002 11:22 PM
> Subject: [aspgerman] RE: AW: RE: AW: Format-Tags aus Textarea
> 
> 
> >
> > Hallo!
> >
> > > Ja wegen unerlaubten Sachen sollte das nicht direkt �ber HTML-Tags
> > gehen das
> > > da von vornherein nix anbrennt.
> >
> > Wenn Du eh pr�fst, vorzugsweise mit Regular Expressions, dann
> > kannst Du
> > auch "<" und ">" eingeben lassen. Dann sieht es auch aus 
> wie HTML und
> > Copy und Paste w�re auch m�glich.
> 
> Er hat wohl eckige Klammern genommen, weil das zig andere 
> Foren auch so
> machen... Die nennen das dann Forum-Code...
> 
> > Such einfach nach beliebigen HTML-Tags und filtere dann die falschen
> > raus:
> >
> > Rxp.Pattern = "<([^>]+)>([^<]*)<\/\1>"
> >
> > Damit erh�ltst Du (theoretisch - nobody is perfect) alle
> > HTML-Statements, wobei in dann $1 der Tagname und in $2 
> alles zwischen
> > "<$1>" und "</$1>" steht.
> 
> Wenn ich das richtig sehe, entsteht hier das Problem, dass 
> geschachtelte
> Tags nicht erkannt werden...
> 
> <b> bold <i>italic + bold</i></b>
> 
> In diesem Fall w�rde man nur die b-Tags finden und w�rde dann 
> das innere
> wahrscheinlich mit htmlencode bearbeiten, was dann aber nicht zum
> richtigen ergebnis f�hrt...
> 
> Man k�nnte jetzt nat�rlich ds ganze rekursiv aufrufen, aber das ist
> nicht n�tig und f�ngt z.B. auch nicht img-Tags ab, die man 
> oft vermeiden
> will...
> 
> Ich w�rde einfach nach sowas suchen:
> 
> Rxp.Pattern = "<\/?([^ ]+)[^>]*>"
> 
> Der Submatch enth�lt dann den tagnamen und man kann unerw�nschte
> tagnamen als ganzes entfernen...
> Da beim endtag auch nur der simple name zur�ckgegeben wird, werden die
> end-tags gleich mitentfernt...
> 
> Das entfernen geht �brigens nicht mit regexp in diesem fall, 
> weil man je
> nach match entscheiden muss und replace nur auf alle matches angewandt
> werden k�nnen.
> D.h. man muss mit stringoperationen die entsprechenden tags
> rausschneiden und damit man dabei die positionsanzeig in den matches
> nicht ung�ltig macht, muss (!!!) man die matches von hinten nach vorne
> abarbeiten..
> 
> Wenn man �brigens ganz genau sein will, erweitert man das Pattern noch
> so, dass folgende Tags auch richtig erkannt werden
> 
> <tag attr=">" >
> 
> Gruss,
> 
> Claudius
> 
> >
> > In VBScript kannst Du die Submatches einzeln lesen und dann die Tags
> > rausschmei�en, die Du nicht haben willst.
> >
> > F�r die Ausgabe solltest Du dann auf jeden Fall HTMLEncode 
> verwenden,
> > damit die Tags  wieder editiert werden k�nnen.
> >
> 
> 
> | [aspgerman] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspgerman/ = Listenarchiv
> | Sie k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspgerman.asp
> 
> 
> 
> 
> | [aspgerman] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspgerman/ = Listenarchiv
> | Sie k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspgerman.asp
> 


| [aspgerman] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspgerman/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspgerman.asp

Antwort per Email an