var re = /href="(http.*\.jpg)"/g;
var mp3s = body.match(re);
它找到图片,但它返回href =“http://www.picture.com/smthg.jpg”
而不是返回http://www.picture.com/smthg.jpg
任何想法为什么?
答案 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例子来破坏它。