这是我通常使用javascript检查youtube网址有效性的方式。它工作得很好,但在视频ID之前带有“ - ”的网址失败,例如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";
}
答案 0 :(得分:4)
将\w+
更改为[\w-]+
,因为\w
字符类仅匹配[A-Za-z0-9_]
。
Regular-Expressions.info对what character classes are以及正则表达式的lookahead feature有很好的解释,这两者都是你的正则表达式所使用的。