我从textarea(除了简单的文本可能包含html标记)获取内容,并试图解析它并用字符串替换所有“[File:#xx#]”的出现包含在一个数组中。 因此,可以说textarea的内容在var html
。
我做到以下几点:javascript正则表达式 - 全局替换问题
<img src="[File:#111#]" alt="image1" />
<img src="[File:#222#]" />
但当有2个元素女巫之间没有断行与[File:#xx#]
值都属性:当内容的文本区域都是这样
html = html.replace(/\[File:#(.*)#\]/g,
function($0, $1){ return furls[$1]; });
一切工作正常,那么问题就出现了。
因此,考虑到这是textarea的值:
<img src="[File:#111#]" alt="image1" /><img src="[File:#222#]" />
好像它matces第一IMG的[File:#111#
但关闭它不与第一支架,Rathen市的比第二的。所以,被取代的是所有这些:
#]" alt="image1" /><img src="[File:#222
我的正则表达式有什么问题?我怎样才能防止这种先行发生,并停止在第一个左括号?
在此先感谢。
非常感谢Bogdan的回复。对于我目前需要的东西就足够了,但是如果我需要支持任何字符,如'[File:#http://test.com/file1?a = 1&b = 2#]' – CrisDeBlonde 2012-03-30 14:44:37
如果您想添加其他字符在你的搜索中,你可以得到如下的正则表达式:/[File:#[\w=&?/.]+#]/g这将与你在评论 – 2012-03-30 14:46:44
cool中提供的例子相匹配!再次感谢广泛的帮助! – CrisDeBlonde 2012-03-30 14:48:42