jquery - 使用 jquery 验证 youtube URL

标签 jquery regex validation youtube

我希望用户提交 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');
    }
});
<小时/>

Demo

关于jquery - 使用 jquery 验证 youtube URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447099/

相关文章:

json - 如何使用 postman 在错误消息中返回键/值进行ajv验证

java - 关于Java正则表达式的问题

java - 如何在 Spring 中验证长 PathParam

javascript - mvc View 中的网格行选择

jquery - 如何修改逗号分隔列表

Javascript RegExp 在 IE 中不起作用

ruby - 从字符串中提取几个数字中的一个

javascript - ng-pattern 不显示 $error.pattern

javascript - 使用 ajax 获取的数据作为 json 被随机推送到一个数组中

Javascript querySelectorAll,如何只匹配顶部元素?