Javascript正则表达式匹配无法正常运行

时间:2014-04-23 23:19:58

标签: javascript regex

好吧,我放弃了。这是我的代码:

var re = /href="(http.*\.jpg)"/g;
var mp3s = body.match(re);

它找到图片,但它返回href =“http://www.picture.com/smthg.jpg”

而不是返回http://www.picture.com/smthg.jpg

任何想法为什么?

3 个答案:

答案 0 :(得分:2)

match()的结果实际上是一个对象。

我认为你需要访问该对象的第一个元素。

例如:

body.match(re)[1]

这是保存实际结果的地方。

无耻的自我推销:  我为我写了一个小指南,我永远不会记得如何使用它们。就在这里:http://queirozf.com/reminders/javascript-regular-expressions-usage-reminder

答案 1 :(得分:0)

var re = /(http.*\.jpg)/g;
var mp3s = body.match(re);

因为你不需要href。

答案 2 :(得分:0)

您希望匹配正则表达式,但只返回括号中的部分。

为此,请调用正则表达式exec方法。例如:

var body = 'stuff stuff morestuff href="http://www.picture.com/smthg.jpg" and some more stuff';
var re = /href="(http.*\.jpg)"/g;
var regexResults = re.exec(body);
var mp3s = regexResults[1];
alert(mp3s);

给了你这个答案,我必须恳请你找到一种不同的方法来解决这个问题。您无法使用正则表达式解析HTML。无论你的正则表达式有多复杂,都会有一个合法的HTML例子来破坏它。