无法正确表达js正则表达式

时间:2017-04-04 19:17:07

标签: javascript regex

我正在尝试使用正则表达式将字符串分成两个匹配项。这是我到目前为止所得到的:https://jsfiddle.net/9rjzttc2/154/

如果我删除其中一个[img url="http://www.technomag.co.zw/wp-content/uploads/2013/01/quiz.jpg"][/img],它似乎有效。要点是它应该读取字符串,然后用HTML标记替换非html标记,以便每个[img/]标记变为html <img/>

2 个答案:

答案 0 :(得分:1)

你错过了?,你的捕获组是&#34; url&#34;属性过于贪婪(.+的消耗比预期的要多):

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

你的:https://regex101.com/r/IcKhYK/2

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

Working jsFiddle

答案 1 :(得分:0)

我将您的正则表达式更新为以下内容:

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

它似乎产生了你想要的东西?如果这仍然不准确,则回复。