gpt4 book ai didi

javascript - 尝试从 Vimeo URL 解析 ID 时出现问题

转载 作者:行者123 更新时间:2023-11-30 18:47:53 34 4
gpt4 key购买 nike

我用来从 Vimeo 视频中获取 ID 的代码是这个:函数

function vimeo_embed_format(src, width, height) {
var final_syntax;
var first_part;
var second_part;
var third_part;

first_part = "<iframe src='http://player.vimeo.com/video/" + src + "' ";
second_part = "width='" + width + "' height='" + height +"' ";
third_part = "frameborder='0'></iframe>";
final_part = first_part + second_part + third_part;

return final_part;
}

vimeo_id_extract(url) {
var re;
var match;
var final_id;

re = new RegExp('/[0-9]+', "g");
match = re.exec(url);

if(url.toLowerCase().indexOf('vimeo') > 0) {
if (match == null) {
return false;
} else {
return match[0].substring(1);
}
}
}

这就是我使用它的方式:

function vimeo_do(video, width, height) {
var make_syntax;
var regexp_url;

regexp_url = /((mailto\:|(news|(ht|f)tp(s?))\:\/\/){1}\S+)/;

if(regexp_url.test(video) == false) {
make_syntax = vimeo_embed_format(vimeo_id_extract(video), width, height);
} else {
make_syntax = vimeo_embed_format(video, width, height);
}

document.writeln(make_syntax);
}

问题是它返回给我 undefined。我应该怎么做才能纠正?

最佳答案

问题是这个 if(url.toLowerCase().indexOf('vimeo') > 0) 如果你的 url 是 vimeo.com/idnro 那么url 中 vimeo 的索引为 0。您可能还想将正则表达式修改为 re = new RegExp('[0-9]+$') 来考虑像这样的 url

http://vimeo.com/groups/687/videos/3741327

否则您将匹配 687 而不是实际的视频 ID。我也强烈推荐FireBug用于调试这样的东西。这是一颗 gem 。

更新

假设格式错误的 URL 将进入 vimeo_id_extract 这就是我会做的。首先从 vimeo_id_extract 中两次返回一个数字,并检查返回的数字是否无效。如果不是那么一切都应该没问题,否则 url 中没有视频 ID。

如果您知道视频 ID 将始终终止字符串,则在正则表达式的末尾添加一个 $ 符号以确保提取最后七位数字序列。

function vimeo_id_extract(url) {
var re;
var match;
re = new RegExp('[0-9]{7}');
match = re.exec(url);
if(match != null) {
return match[0];
}
else {
return -1;
}
}

function vimeo_do(video, width, height) {
var make_syntax;
var regexp_url;

regexp_url = /((mailto\:|(news|(ht|f)tp(s?))\:\/\/){1}\S+)/;

if(regexp_url.test(video) == false) {
vimeo_id = vimeo_id_extract(video)
if vimeo_id != -1 {
make_syntax = vimeo_embed_format(vimeo_id_extract(video), width, height);
}
else {
// there is no video id in the string passed in
}
} else {
make_syntax = vimeo_embed_format(video, width, height);
}

document.writeln(make_syntax);
}

关于javascript - 尝试从 Vimeo URL 解析 ID 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4857176/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com