PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : img-tag mit fehlendem alt-attribut finden


tendor
17.08.2003, 18:41
hallo,
ich versuche einen reg. ausdruck (perl kompatibel) zu finden, der mir html img-tags findet, bei denen das alt-attribut fehlt.
ich habe es schon mit einem 'look-ahead' versucht, aber der muss wohl am ende stehen
<img[^>]*(?!alt)[^>]*>
funktioniert nicht.
<img[^>]*(^alt)[^>]*>

geht leider auch nicht ;)

Hat jemand eine bessere Idee?


Jan Krüger
17.08.2003, 23:11
/<img (\s+ (?<!alt)\w+ = "[^"]*") \s* >/ix

tendor
17.08.2003, 23:43
Original geschrieben von Jan Krüger

/<img (\s+ (?<!alt)\w+ = "[^"]*") \s* >/ix


lookbehind...aha. interessante idee,
aber scheint leider nicht ganz zu funktionieren.
(das img-tag kann noch weitere attribute enthalten zb style="x")
außerdem ist diese form möglich
<img src="blub" /> (xhtml)
ok. letzteres bekomme ich noch hin:
/<img (\s+ (?<!alt)\w+ = "[^"]*") [\s\/]* >/ix

aber
/<img (\s* (?<!alt)\w+ = "[^"]*")+ [\s\/]* >/ix
klappt schon wieder nicht :/

Jan Krüger
17.08.2003, 23:45
Sorry, kleiner Fehler meinerseits:

/<img (\s+ (?<!alt)\w+ = "[^"]*")+ \s* \/? \s*>/ix

tendor
17.08.2003, 23:55
war zwar schnell, aber das habe ich doch (fast) auch schon gepostet. geht leider nicht.
:(

Jan Krüger
17.08.2003, 23:57
Welches sind genau die Problemfälle? Tags mit mehreren Attributen sollten jetzt erkannt werden. Vielleicht geht aber auch \w* statt \w+ besser, weiß ich jetzt gerade nicht.

tendor
18.08.2003, 00:00
er scheint so so ziemlich alles zu matchen.
zb
<img alt="test" src="test">
<img src="test" alt="test" />
<img src="test" />
<img src="test" border="0" />
<img src="test" alt="test" style="border-style:none" />

hast du es bei dir mal ausprobiert?

Jan Krüger
18.08.2003, 00:07
Hab falsch gedacht. Der hier ist jetzt auch getestet: ;)
/<img (\s+ \w+ (?<!\salt) = "[^"]*")+ \s* \/? \s*>/ix

PS. wenn du Perl benutzt, macht das Ganze wahrscheinlich mit HTML::Parse mehr Spaß.

tendor
18.08.2003, 00:17
ja, der scheint zu gehen. prima!

ich benutze das nur um ein paar seiten halbwegs automatisch auf xhtml umzustellen.

(mit grep, php und hffr)

also danke nochmal :)