Javascript正则表达式匹配不';我跑不好
好吧,我放弃。这是我的密码:Javascript正则表达式匹配不';我跑不好,javascript,regex,Javascript,Regex,好吧,我放弃。这是我的密码: var re = /href="(http.*\.jpg)"/g; var mp3s = body.match(re); 它查找图片,但返回href=”http://www.picture.com/smthg.jpg" 而不是返回 知道为什么吗?试试看 var re = /(http.*\.jpg)/g; var mp3s = body.match(re); 由于您不需要href.匹配()的结果实际上是一个对象 我认为您需要访问该对象上的第一个元素 例如: bo
var re = /href="(http.*\.jpg)"/g;
var mp3s = body.match(re);
它查找图片,但返回href=”http://www.picture.com/smthg.jpg"
而不是返回
知道为什么吗?试试看
var re = /(http.*\.jpg)/g;
var mp3s = body.match(re);
由于您不需要href.匹配()的结果实际上是一个对象 我认为您需要访问该对象上的第一个元素 例如:
body.match(re)[1]
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);
这是保存实际结果的地方
无耻的自我推销:
我已经为自己写了一个小指南,我也记不起如何使用它们了。在这里:您希望匹配正则表达式,但只返回括号中的部分 为此,请调用正则表达式
exec
方法。例如:
body.match(re)[1]
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示例破坏它。因为您在匹配中包含了
href
属性当您可以访问DOM时,为什么还要麻烦使用像正则表达式这样原始的东西呢?这看起来很幼稚,因为它比导入dom解析器库更快。这真的不能回答我的问题。正则表达式对我来说似乎很好我不知道问题出在哪里。。。我捕获了不包含hrefIf的组如果您想确保在链接之前有一个“href=”但没有捕获它,请在Google中查找“lookbehind正则表达式”,它就会这样做。javascriptyeah不支持lookbehind,但我想确保它在链接中,不是这样。如果你不提升自己,那就不是真正的自我提升——你的导游在哪里?我们能看看吗?:)@Zlatko=)好的,那你就开始吧。我控制台。记录它,我只得到一个结果,一个完整的结果,而不仅仅是捕获组。现在这是一个自我提升:)虽然不是无耻的,但我认为这些简短的提醒非常好,它们也可以帮助其他人。当我需要获取.jpg时,你有没有更快的解决方案?整个dom解析器对我来说太重了。