Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正确使用YouTube Url正则表达式_Javascript_Html_Regex - Fatal编程技术网

Javascript 正确使用YouTube Url正则表达式

Javascript 正确使用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; } 我觉得我遗漏了一些非

我在堆栈溢出上找到这个正则表达式来获取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;
}
我觉得我遗漏了一些非常明显的东西,但我只是不知道如何实际使用它。在为数据库准备文本输入字段“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']