J'essaie d'obtenir une expression régulière pour casser une chaîne en deux correspondances. voici ce que j'ai jusqu'à présent: https://jsfiddle.net/9rjzttc2/154/

Si je supprime l'un des [img url="http://www.technomag.co.zw/wp-content/uploads/2013/01/quiz.jpg"][/img], il semble fonctionner. L'essentiel est qu'il doit lire la chaîne, puis remplacer le balisage non html par un balisage HTML, de sorte que chaque balise [img/] devienne un html <img/>

0
Mike_G 4 avril 2017 à 22:17

2 réponses

Meilleure réponse

Il vous manque un ?, votre groupe de capture pour l'attribut "url" est trop gourmand (le .+ consomme plus que prévu):

/\[(img)\s+(url="(.+?)")\](\w*)\[\/(img)\]/g
//                  ^ this is needed

Bien à vous: https://regex101.com/r/IcKhYK/2

Ceci: https://regex101.com/r/IcKhYK/1

Utilisation de jsFiddle .

1
ibrahim mahrir 4 avril 2017 à 19:29

J'ai mis à jour votre expression régulière comme suit:

var imgMarkup = /\[(img)\s+(url="(.+?)")\](\w*)\[\/(img)\]*/g;

Il semble produire ce que vous voulez? Répondez si ce n'est toujours pas exact.

0
Daniel Schmidt 4 avril 2017 à 19:36