Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未返回预期图像的正则表达式_Javascript_Xml_Regex_Image_Titanium - Fatal编程技术网

Javascript 未返回预期图像的正则表达式

Javascript 未返回预期图像的正则表达式,javascript,xml,regex,image,titanium,Javascript,Xml,Regex,Image,Titanium,我使用以下正则表达式在提要中的标记中搜索图像: var str=items.item(i).getElementsByTagName("content:encoded").item(0).text; var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i var urlMatch = str.match(patt1); 然后,我将在以下标记内打印到控制台urlMatch[0]、urlMatch[1]和urlMatch[2]: <![CD

我使用以下正则表达式在提要中的标记中搜索图像:

var str=items.item(i).getElementsByTagName("content:encoded").item(0).text;
var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i
var urlMatch = str.match(patt1);
然后,我将在以下标记内打印到控制台urlMatch[0]、urlMatch[1]和urlMatch[2]:

<![CDATA[
<p><a href="http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg"><img class="alignleft size-thumbnail wp-image-56646" alt="Emergency" src="http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency-150x150.jpg" width="150" height="150" /></a></p> <p><strong>The HSE has confi
]]>

有人能给我解释一下发生了什么事吗?为什么我没有得到一个与150x150的名称?这就是我需要的。提前感谢您的帮助

第一场比赛您将获得多个组,而不是多个组。这意味着,
urlMatch[0]
是匹配,
urlMatch[1]
是第一个捕获组(第一组括号,顺便说一下,与整个匹配相同),
urlMatch[2]
是模式中的第二组括号(您已将其包装在文件扩展名周围)

您需要使用全局
g
标志:

var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/ig;
var urlMatch = str.match(patt1);
导致:

[
  "http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg",
  "http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency-150x150.jpg"
]
如果您确实需要捕获组(除了所有匹配项之外),则必须使用

如果没有,您可以使用非捕获组来提高性能。请注意,在任何情况下都不需要外圆括号,因此可以省略。使用非捕获组时,情况如下所示:

var patt1 = /[a-z\-_0-9´\/:.]*\.(?:jpg|jpeg|png|gif)/ig;
var patt1 = /[a-z\-_0-9´\/:.]*\.(?:jpg|jpeg|png|gif)/ig;