使用jquery javascript验证youtube网址

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)

演示