Hi Claudius und Joachim
hab das jetzt soweit das das l�uft nur hab ich grad ein Problem das ich
nicht wirklich verstehe und zwar:
Warum liefert Beispiel 1 das richtige ergebnis und Beispiel 2 einen
Fehler(' Ung�ltiger Prozeduraufruf oder ung�ltiges Argument ' )
auch wenn ich z.B set Uebereinstimmung = Uebereinstimmungen(0)
(wie in der VBscript-doku) vor der schleife setze ???
Kann doch nicht sein das ich alles erst in ein Array einlesen muss das ich
nen Index verwenden kann oder doch?
Oder hab ich da nen grundlegenden Denkfehler drin.
Und w�re nett wenn ihr mir noch die Bedeutung von [^\] n�her erkl�ren
k�nntet
(Ausdruck mit eckigen Klammern, wo es die Menge von Zeichen negiert ????)
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)
und dann findet er ja nur sagen wir das erste endtag(wobei nur der Tagname
gefunden wird)
woher weis er dann welches anfangstag zum gefundenen geh�rt wenn es mehrere
gibt oder anfangstag garnicht vorhanden ist?
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