我真的把头撞在墙上了。我有这个正则表达式模式
(?:youtu\.be\/|youtube.com\/(?:watch\?.*\bv=|embed\/|v\/)|ytimg\.com\/vi\/)(.+?)(?:[^-a-zA-Z0-9]|$)
它提取了 youtube 视频的 id。我在这里试过
http://www.regular-expressions.info/javascriptexample.html
对于任何主题字符串,假设http://youtube.com/watch?v=21312321并且它有效。
但是在我的网站上,我有以下输入字段
<input type="text" name="status" id="status" placeholder="Post a youtube video link">
和下面的jQuery代码
$('#status').keyup(function(event){
var value = $(this).val();
var pattern = "(?:youtu\.be\/|youtube.com\/(?:watch\?.*\bv=|embed\/|v\/)|ytimg\.com\/vi\/)(.+?)(?:[^-a-zA-Z0-9]|$)";
var re = new RegExp(pattern);
if (value.match(re)) {
console.log("Successful match");
} else {
console.log("No match");
}
});
通过使用与上面相同的视频,结果是“不匹配”。这怎么可能,请告诉我这里出了什么问题。