Javascript 正确使用YouTube Url正则表达式
我在堆栈溢出上找到这个正则表达式来获取youtube视频idJavascript 正确使用YouTube Url正则表达式,javascript,html,regex,Javascript,Html,Regex,我在堆栈溢出上找到这个正则表达式来获取youtube视频id function ytVidId(youtubeurl) { var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/; return (url.match(p)) ? RegExp.$1 : false; } 我觉得我遗漏了一些非
function ytVidId(youtubeurl) {
var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
return (url.match(p)) ? RegExp.$1 : false;
}
我觉得我遗漏了一些非常明显的东西,但我只是不知道如何实际使用它。在为数据库准备文本输入字段“youtubeurl”之前,如何使其影响该字段
非常感谢。。。感谢您的帮助 首先,您需要从文本框中获取文本,可能需要使用document.getelementbyid().value,然后您可以这样做(例如,如果您的文本框的id为#txt1,则可以使用以下代码:
function ytVidId(youtubeurl) {
var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
return (url.match(p)) ? RegExp.$1 : false;
}
var ytURL = document.getelementbyid("txt1").value;
var ytID = ytVidID(ytURL);
现在,变量ytID包含youtube视频ID,您可以按照自己的意愿将其添加到数据库中。match(p)[1]应包含ID。将其记录到控制台,查看数组包含的内容。然后您可以使用regex验证值,并使用
regex.test(str)
我建议不要使用RegExp.$1
。它已被弃用。谢谢!发送到数据库的所有其他变量都像-$\u POST['youtubeurl']在准备好的语句中。你知道如何将新ID设置为变量,以便在同一语句中使用它吗?只要代码存在,就可以将youtubeurl替换为YId!例如:var YId=ytVidID(youtubeurl);
$\u POST['YId']