Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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_Regex_Youtube - Fatal编程技术网

Javascript 带连字符的Youtube url测试器

Javascript 带连字符的Youtube url测试器,javascript,regex,youtube,Javascript,Regex,Youtube,这就是我通常使用javascript检查youtube url有效性的方式。它工作得很好,但对于视频id前面带“-”的URL来说失败,例如http://www.youtube.com/watch?v=-pIaQpwYEjY 我不太熟悉正则表达式,有什么补救办法吗 var matches = $('#as_url').val().match(/^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$/); if (matches) {

这就是我通常使用javascript检查youtube url有效性的方式。它工作得很好,但对于视频id前面带“-”的URL来说失败,例如
http://www.youtube.com/watch?v=-pIaQpwYEjY

我不太熟悉正则表达式,有什么补救办法吗

var matches = $('#as_url').val().match(/^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$/);
if (matches) {
} else {
    error +="\nInvalid Youtube Url";
}

\w+
更改为
[\w-]+
,因为
\w
字符类仅匹配
[A-Za-z0-9\


Regular-Expressions.info很好地解释了您的正则表达式使用的正则表达式以及正则表达式的类型。

\w+
更改为
[\w-]+
,因为
\w
字符类只匹配
[a-Za-z0-9.


Regular-Expressions.info很好地解释了您的正则表达式所使用的正则表达式以及正则表达式的用法。

刚刚做了一个修改,并使用相同的url对其进行了测试,但它警告了无效的youtube url+1@洛吉克爵士:这管用!我自己测试了一下。您的正则表达式中可能有输入错误。对于我来说,这失败了var matches=$(“#as#url”).val().match(/^http:\/\/(?:www\)?youtube.com\/watch\(?=.*v=[\w-]+)(?:\S+)$/;如果(匹配){}否则{error+=“\nIninvalid Youtube Url”;}我的查询中是否有输入错误?怎么会在这里失败呢。我刚做了一个修改并用同一个url测试了它,但它警告无效的youtube url+1@洛吉克爵士:这管用!我自己测试了一下。您的正则表达式中可能有输入错误。对于我来说,这失败了var matches=$(“#as#url”).val().match(/^http:\/\/(?:www\)?youtube.com\/watch\(?=.*v=[\w-]+)(?:\S+)$/;如果(匹配){}否则{error+=“\nIninvalid Youtube Url”;}我的查询中是否有输入错误?怎么会在这里失败呢。我开始有点脑子堵塞了