Archiv verlassen und diese Seite im Standarddesign anzeigen : img-tag mit fehlendem alt-attribut finden
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
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
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.
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ß.
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 :)
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.