主页
文章
交流
项目
购买
客服

 

请教一个验证重复字符的问题

欢迎讨论 » 表达式交流 » 请教一个验证重复字符的问题 »


   

请教一个验证重复字符的问题
发表:云儿飘飘香自来,2010-5-19 1:00:50

回复

 
最近在学Javascript老师提到了正则表达式,虽然没教咱们,但是凭着学以自用的原则,偶自学了(本人目前属于菜鸟型)
现在碰到一个问题,在验证Email地址(众所周知,只能包含字母 数字 _ . @ -)的时候,我不希望邮箱地址里出现连续的2个. 或_ 而且还必须要做到@字符以前可以有一个. 之后可以有多个. 地址最后一个字符只能是字母,并且不能出现形如 ._. 或_._的字符组合
请大家指教
下面是本人的代码,写的不全,因为实在是一句话写不下来,才分了几个步骤做完的
//验证Email开始
function checkEmail()        //验证邮箱
{
    email=document.all("email")
    email.value=trim(email.value)    //先去空格
    if(email.value.length>=30)
    {
        alert("邮箱地址长度太大!\n\r邮箱地址首字符不能是下划线,且必须包含@ 和 . 符号\n\r且最大长度不能超过30位\n\r空格将会自动去掉")
        email.value=""
        email.focus()
        return false
    }
    t=/^[a-zA-Z0-9]\w*@\w+\.\w[a-zA-Z0-9_.]*[a-zA-Z]$/
    s=email.value.search(t)
    if(s==-1)
    {
        alert("邮箱地址格式不正确!\n\r邮箱地址首字符不能是下划线,且必须包含@ 和 . 符号\n\r且最大长度不能超过30位\n\r空格将会自动去掉")
        email.value=""
        email.focus()
        return false
    }
    x=/(_|\.)\1/
    if(email.value.search(x)!=-1)
    {
       
        alert("邮箱地址格式不正确!\n\r邮箱地址首字符不能是下划线,且必须包含@ 和 . 符号\n\r且最大长度不能超过30位\n\r空格将会自动去掉")
        email.value=""
        email.focus()
        return false       
    }
    index=email.value.indexOf("_")
    while(true)
    {
        if(email.value.charAt(index-1)=="."||email.value.charAt(index+1)==".")        //验证 _ 前后均不能为 .
        {
        alert("邮箱地址格式不正确!\n\r邮箱地址首字符不能是下划线,且必须包含@ 和 . 符号\n\r且最大长度不能超过30位\n\r空格将会自动去掉")
        email.value=""
        email.focus()
        return false   
        }
        index=email.value.indexOf("_",index+1)
        if(index==-1)    //已经搜索不到_时跳出循环
            break
    }
    open("checkmail.html","验证邮箱","width=200 height=50")
    return true
}
//验证Email结束


第 1 页,共 1 页: 第一页 上一页 下一页 最后一页


相关赞助商链接

 
 

RegExLab.com © 2005 - 2009  渝ICP备05015140号