/ / Remplacer les balises br ou img non auto-fermées dans nodejs - javascript, regex, node.js

Remplacer les balises br ou img non auto-fermées dans nodejs - javascript, regex, node.js

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 № 1

Changez 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 :-)