Le problème est le même que dans Fermez toutes les balises IMG HTML non fermées, mais l'expression rationnelle fournie (<img[^>]+)(?<!/)>
nécessite un support - ce que nodejs ne possède pas.
Comment puis-je obtenir le même résultat dans nodejs?
Le code source HTML est généré par une autre application.
Réponses:
3 pour la réponse № 1Changez un peu la regex:
/(<img[^>]*[^/>])>/
Ou d'une autre manière (probablement plus lente):
/(<img(?:(?!/>)[^>])+)>/
J'ai essayé de ne pas changer l'hypothèse d'au moins 1 caractère en >
, c'est à dire. <img>
ne sera pas assortie par votre regex /(<img[^>]+)(?<!/)>/
, ni les regexes que j'ai suggérées ci-dessus.
Si tu veux <img>
à faire correspondre à l'expression régulière (pour pouvoir la modifier):
/(<img(?:[^>]*[^/>])?)>/
2 pour la réponse № 2
Vous pouvez restructurer cette expression régulière pour qu'elle corresponde à la même chose mais n'utilise pas lookbehind:
/(<img(?:[^>/]|/(?!>))+)>/
Cependant, notez qu'il s'agit d'un quasi-double des RegEx correspond aux balises ouvertes, à l'exception des balises autonomes XHTML à qui vous devriez répondre :-)