使用jquery进行Url验证

Url validation with jquery

本文关键字:验证 Url 进行 jquery 使用      更新时间:2023-09-26

为什么在以下代码中不工作这部分if(!$(this).val()){...从代码和这个匹配是真的与http://www.st,我想作为:http://stackoverflow.com ?

例子: http://jsfiddle.net/gp9nL/3/

$('.url').keyup(function(){
    if (!$(this).val().match(/^(https?:'/'/)?(['da-z'.-]+)'.([a-z'.]{2,6})(['/'w '?=.-]*)*'/?$/)){
        $(this).css("background", "#ffc4c4");
        result = false;
    }else {
        $(this).css("background", "#FFFFEC");
        result = true;
    }
    if(!$(this).val()){
        alert('field is empty')
        $(this).css("background", "#FFFFEC");
    }
    return result;
});

This

if(!$(this).val())

可能不工作,因为它正在keyup

上被调用

$('.url').keyup(function(){

因此,input中总是会有一些东西,因为需要按键来触发keyup,并且它永远不会被计算为空。

编辑

根据注释

解决方案是什么?

如果要检查字段是否为空,请在focusout上进行检查。

这是你更新后的代码:

$('.url').focusout(function(){
    if(!$(this).val()){
        alert('field is empty')
        $(this).css("background", "#FFFFEC");
    }        
});

和你的小提琴更新:http://jsfiddle.net/gp9nL/4/