我希望用户提交 YouTube 网址。我想“即时”检查 YouTube 链接是否正确,如果检查成功,则将输入旁边的文本更改为“确定”。
我设法制作了一个验证功能,但它不起作用。我做错了什么?
更新
它仍然不起作用,当 URL 不正确时它应该说 not ok,而当 URL 正确时它应该说 OK:
$('form #youtube').bind("change keyup input", validYT());
function validYT()
{
var url = $('form #youtube').val();
var p = /^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/;
if (url.match(p)) {
$('#ytInfo').removeClass().addClass('fieldok ').text('OK');
return true
}
else
{
$('#ytInfo').removeClass().addClass('fieldok ').text('NOT OK');
return false
}
}
HTML:
youtubelink<BR>
<input type="text" name="youtube" id ="youtube" value="" /><div id="ytlInfo">dd</div>
最佳答案
function validYT(url) {
var p = /^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/;
return (url.match(p)) ? RegExp.$1 : false;
}
谢谢@eyecatchUp https://stackoverflow.com/a/10315969/1250044
更新
function ytVidId(url) {
var p = /^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/;
return (url.match(p)) ? RegExp.$1 : false;
}
$('#youtube').bind("change keyup input", function() {
var url = $(this).val();
if (ytVidId(url) !== false) {
$('#ytlInfo').addClass('fieldok');
} else {
$('#ytlInfo').removeClass('fieldok');
}
});
<小时/>
关于jquery - 使用 jquery 验证 youtube URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447099/