r2g*_*get 2 regex youtube validation jquery
我希望用户提交youtube网址.如果youtube链接正确,我想"动态"检查,如果检查成功,则将输入旁边的文本更改为OK.
我设法做了验证功能,但它不起作用.我究竟做错了什么?
UPDATE
它仍然无法正常工作,当URL不正确时应该说不正确,而在输入时URL正确时可以正常:
$('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
}
}
Run Code Online (Sandbox Code Playgroud)
HTML:
youtubelink<BR>
<input type="text" name="youtube" id ="youtube" value="" /><div id="ytlInfo">dd</div>
Run Code Online (Sandbox Code Playgroud)
yck*_*art 11
function validYT(url) {
var p = /^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/;
return (url.match(p)) ? RegExp.$1 : false;
}
Run Code Online (Sandbox Code Playgroud)
谢谢@eyecatchUp /sf/answers/722117861/
更新
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');
}
});
Run Code Online (Sandbox Code Playgroud)