JQuery

1个成员

jquery中邮箱地址 URL网站地址正则验证实例

发表于 2017-01-11 3123 次查看
今天看到QQ网站有一个网站举报的功能,看了一些js代码觉得写得很不错,我就拿下来了,下面是一个email验证与url网址验证js代码,分享给大家。

email地址验证

 代码如下 复制代码

function checkEmail(){
    var email=$.trim($("#report_email").val());
    if(email == ""){
        $("#report_email").next('p').html("*请输入邮箱地址!");
        return false;
    }
    var re = /^([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,3}$/ig;
    if(!re.test(email)){
        $("#report_email").next('p').html("*邮箱地址格式错误!");
        return false;
    }
    return true;
}

url地址验证

 代码如下 复制代码

function getUrlArray(e, type){
    var urls = $.trim($("#report_url_list").val());
    urls = urls.replace(/s*n+s*/ig,"n");
    $("#report_url_list").val(urls);
        //format the urls
    if(type == "blur"){
        reportUrlElm.val(urls);
    }
    if(e && e.keyCode == 13){
        reportUrlElm.val(urls + "n");
    }
       
    urls = urls.split("n");
    user_urls = urls;
    return urls;
}
function checkurls(e, type) {
    $("#errorList").find("span").hide();
    urls = getUrlArray(e, type);
    var urlfag = true;
    url_index = 0;
    var urlText="请填写举报网站,您可以举报多个网址,每行一个,一次不超过20个。";
    if(!urls[0] || urls[0] == urlText){
        $("#report_url_list").val(urlText).css("color","#757575");
        $("#report_url_list").next('p').html('*请输入正确的网址');
        $.urlfag=false;
        return false;
    }
    if(urls.length > 20){
            $("#report_url_list").next('p').html("已超过20个,请分批举报")
            $.urlfag=false;
            return false;
    }
    $.urlfag=true;
    for(url_index=0;url_index<urls.length;url_index++){
        $.urlfag = checkEachUrl(urls, url_index)  && $.urlfag ;
    }
    return  urlfag;
}
function checkEachUrl(urls, index){
    var e=urls[index];
    a = e.replace(/^http:///, "");
   
    if (a.indexOf("/") != -1) {
        a = a.substring(0, a.indexOf("/"));
    }
    var rg = /^((https?|ftp|news)://)?([w-]+.)+(.)+(:d+)?(/[w- ./?%&=]*)?$/i;
    if(!rg.test(a)){
        urlError("格式错误",index,-1);
        return false;
    }
    if(inUrlArray(urls,index)){
        urlError("请不要举报同一条网站",index,-1);
        return false; 
    }
    $.ajax({
        async:false,
        url:"http://api.pc.qq.com/tapi/url_report.php?url=http://"+a,
        dataType: "jsonp",
        method: "GET",
        success:function(a){
            if(a.is_existed=="yes"){
                urlError("该网址已被举报",index,-1);
                $.urlfag= false;
            }
        }
    });
    urlError("正常",index,0);
    return true;
}

function inUrlArray(urls,index){
    var r=false
        for(i=index+1;i<urls.length;i++){
        a = urls[index].replace(/^http(s?):///, "");
        b = urls[i].replace(/^http(s?):///, "");
        if(a==b)
            r=true;
    }
    return r;
}
function  urlError(msg,index,type){
    type=type|| 0;
    var test = $("#errorList div").find("span").eq(index);
    test.show();
    if(type<0){
       test.attr('title',msg).css("background-position","-20px 0px");
    }else{
       test.attr('title',msg).css("background-position","0px 0px");
    }
}

发表回复
你还没有登录,请先登录注册