Utilisation d'expressions régulières pour rechercher des balises img sans attribut alt
Je vais par le biais d'un site web de grande envergure (plus de 1 600 pages) pour le faire passer en Priorité 1 W3C-WAI. En conséquence, des choses comme les balises d'image doivent avoir les attributs alt.
Ce qui serait l'expression régulière pour trouver les balises img, sans attributs alt? Si possible, avec une petite explication afin que je puisse utiliser pour rechercher d'autres questions.
Je suis dans un bureau avec Visual Web Developer 2008. L'Edit >> Trouver un dialogue peut utiliser des expressions régulières.
source d'informationauteur awrigley
Vous devez vous connecter pour publier un commentaire.
C'est vraiment difficile, parce que les expressions régulières sont principalement sur la correspondance de quelque chose qui est là. Avec un coup d'oeil autour de la tricherie, vous pouvez faire des choses comme "trouver Un qui n'est pas précédée/suivi par B', etc. Mais je pense que la solution la plus pragmatique pour vous ne serait pas.
Ma proposition s'appuie un peu sur votre code existant pas faire trop de choses folles, et vous pourriez avoir à peaufiner, mais je pense que c'est un bon coup, si vous voulez vraiment utiliser un RegEx de recherche pour votre problème.
Donc ce que je propose serait de trouver toutes les balises img, que peut (mais ne pas en avoir besoin) ont tous les attributs valides pour une img-élément. Si c'est une approche que l'on peut travailler avec est à vous de décider.
Proposition:
Les limitations actuelles sont:
Bâtiment sur M. Noir et Roberts126 réponses:
Cela va correspondre une balise img n'importe où dans le code qui n'a pas de balise alt ou alt de la balise qui n'est pas suivi par ="" ou =" (c'est à dire non valide balises alt).
Décomposant:
Si votre éditeur de code permet de rechercher et de remplacer par des Regex vous pouvez l'utiliser en combinaison avec la chaîne de remplacement:
Pour trouver d'alt-moins les balises img et ajoutez-les avec un vide balise alt. Ceci est utile lors de l'utilisation de cales ou d'autres mise en page des images pour des e-mails HTML et la comme.
Voici ce que j'ai essayé dans mon propre environnement avec une énorme entreprise de la base de code avec un certain succès (pas trouvé de faux positifs, mais certainement trouvé valide les cas):
Ce qui se passe dans cette recherche:
De manière à ce match:
Mais il ne correspond pas à l'un de ces:
Cela fonctionne dans Eclipse:
<img(?!.*alt).*?>
Je suis à jour de la Section 508 trop!
Cela a fonctionné pour moi.
Ce qui correspond à toute chaîne commençant par
<img
qui ne contient pas de n'importe quel nombre de caractères avant un attribut alt. Il fonctionne même pour lessrc="<?php echo $imagename; ?>"
type d'attributs.Simple et efficace:
<img((?!\salt=).)*?
Cette regex fonctionne pour trouver
<img>
balises manquantes lealt
attribut.