1

我正在尝试获取 youtube 嵌入链接的片段。我不熟悉组捕获如何在 javascript 中工作。

这就是我所拥有的

<Script>
var str = "<iframe width=\"420\" height=\"315\" src=\"//www.youtube.com/embed/JxE1oj06xH8\" frameborder=\"0\" allowfullscreen></iframe>";

var re = /(?:<iframe)(\swidth=\"\d+\")|(\sheight=\"\d+\")|(\ssrc=\"(?:http:)?(//)?www\.youtube\.com/embed/\w+\"?)(.+></iframe>)/g;

var array = str.match(re);

document.write(array[0]);
</script>

我期望结果是由此捕获的数据

(\swidth=\"\d+\")

对于ever group,我希望能够获取括号中的数据(总共4组)。我该如何获取组中的数据?

4

1 回答 1

0

.match() 作为捕获的括号数组返回。为了让事情更容易看,我用单个 ' 替换了 \",然后解析了字符串。

显然,一个更简单的解决方案是从字符串周围的单引号开始,但我必须使用你给我的东西。

var str = "<iframe width=\"420\" height=\"315\" src=\"//www.youtube.com/embed/JxE1oj06xH8\" frameborder=\"0\" allowfullscreen></iframe>";

str = str.replace(/\"/g, "'");

var re = /width='(\d+)' height='(\d+)' src='\/\/(www\.youtube\.com\/embed\/\w+)' frameborder='0' allowfullscreen><\/iframe>/;

var array = str.match(re);

console.log(array);

根据您的具体程度,以及您可能想要捕捉的其他价值,您应该能够适应这一点。使用正则表达式,我想说你想尽可能具体。

当我第一次学习 JS 的正则表达式时,这是一个很棒的小教程。

于 2013-11-13T04:24:46.693 回答