2021-07-22

正则表达式

替换:replace - 字符串.replace(正则对象,新的内容)
提取:
match - 字符串.match(正则对象)
正则对象.exec(字符串)
验证:
search - 字符串.search(正则对象)
正则对象.test(字符串)

  • 手机号验证
var str = "13212345678";
var reg = /^1[3-9][0-9]{9}$/;
var bool = reg.test(str)
console.log(bool);

qq号验证

var reg = /^[1-9]\d{5,10}$/;
var qq = "3139688500";
var bool = reg.test(qq)
console.log(bool);
  • 网易邮箱的规则
var reg = /^[a-zA-Z]\w{5,17}@163\.com$/;
var email = "aaa123457890@163.com"; 
在正则表达式中,使用 | 表示或者
var emailReg = /(^[1-9]\d{5,10}@qq\.com$)|(^[a-zA-Z]\w{5,17}@((163|126)\.com|yeah\.net)$)/;
var bool = emailReg.test(email)
console.log(bool);

表单验证demo

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<style>
table{
    margin: 50px auto;
}
/* td{
    width: 150px;
}
td:first-child{
    width: 70px;
}
caption{
    margin-left: 10px;
} */
</style>
<form action="">
    <table>
        <caption><h2>注册</h2></caption>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username"></td>
            <td class="untd"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password"></td>
            <td class="pwdtd"></td>
        </tr>
        <tr>
            <td>确认密码:</td>
            <td><input type="password" name="repassword"></td>
            <td class="rptd"></td>
        </tr>
        <tr>
            <td>手机号:</td>
            <td><input type="text" name="tel"></td>
            <td class="ttd"></td>
        </tr>
        <tr>
            <td>邮箱:</td>
            <td><input type="text" name="email"></td>
            <td class="etd"></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="注册"></td>
            <td></td>
        </tr>
    </table>
</form>
</body>
<script type="text/javascript">
/*
每个文本框当失去焦点的时候,就要得到验证的结果,将结果放到每一行的最后一个td中
    提示信息12px
        验证成功,就写成功,设置绿色
        验证失败,就写出为什么失败?红色
所有文本框不能为空
用户名:
    只能用字母开头,由数字和字母组成,位数6~12位
密码:
    6~16位,由字母、数字、下划线组成
确认密码要和密码保持一致

*/
var form = document.querySelector('form')
var usernameInput = document.querySelector('[name="username"]')
var passwordInput = document.querySelector('[name="password"]')
var repasswordInput = document.querySelector('[name="repassword"]')
var telInput = document.querySelector('[name=tel]')
var emailInput = document.querySelector('[name=email]')
var untd= document.querySelector('.untd')
var pwdtd= document.querySelector('.pwdtd')
var rptd= document.querySelector('.rptd')
var ttd= document.querySelector('.ttd')
var etd= document.querySelector('.etd')
usernameInput.onblur = function(){
    var reg = /^[a-zA-Z][a-zA-Z0-9]{5,11}$/;
    
    if(!reg.test(this.value)){
        untd.innerText = '×用户名不符合规范'
        falsetdstyle(untd);
        return false;
    }else{
        untd.innerText = '√用户名可注册'
        truetdstyle(untd);
    }

}
usernameInput.onfocus = function(){
    untd.innerText = ''
    usernameInput.value = ''
}

passwordInput.onblur = function(){
    var reg = /\w{6,16}/;
    if(!reg.test(this.value)){
        pwdtd.innerText = '×密码不符合规范'
        falsetdstyle(pwdtd);
        return false;
    }else{
        pwdtd.innerText = '√密码输入成功'
        truetdstyle(pwdtd);
    }

}
passwordInput.onfocus = function(){  
    pwdtd.innerText = ''
    passwordInput.value = ''
}

repasswordInput.onblur = function(){ 
    if(repasswordInput.value !== passwordInput.value){
        rptd.innerText = '×密码错误'
        falsetdstyle(rptd);
        return false;
    }else{
        rptd.innerText = '√密码正确'
        truetdstyle(rptd);
    }
}
repasswordInput.onfocus = function(){  
    rptd.innerText = ''
    repasswordInput.value = ''
}

telInput.onblur = function(){
    var reg = /^1[3-9]\d{9}$/;
    if(!reg.test(this.value)){
        ttd.innerText = '×手机号不符合规范'
        falsetdstyle(ttd);
        return false;
    }else{
        ttd.innerText = '√手机号输入成功'
        truetdstyle(ttd);
    }

}
telInput.onfocus = function(){  
    ttd.innerText = ''
    telInput.value = ''
}

emailInput.onblur = function(){
    var reg = /(^[1-9]\d{5,10}@qq\.com$)|(^[a-zA-Z]\w{5,17}@((163|126)\.com|yeah\.net)$)/;
    if(!reg.test(this.value)){
        etd.innerText = '×邮箱地址不符合规范'
        falsetdstyle(etd);
        return false;
    }else{
        etd.innerText = '√邮箱地址输入成功'
        truetdstyle(etd);
    }

}
emailInput.onfocus = function(){  
    etd.innerText = ''
    emailInput.value = ''
}


function falsetdstyle(ele){
    setStyle(ele,{
            fontSize:"12px",
            color:"#f00",
            margin:"0 0 0 15px",
        })
}
function truetdstyle(ele){
    setStyle(ele,{
            fontSize:"12px",
            color:"#0f0",
            margin:"0 0 0 15px",
        })
}
function setStyle(ele,styleObj){
    for(var attr in styleObj){
        ele.style[attr] = styleObj[attr];
    }
}

</script>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 4,045评论 0 20
  • 1 Object 对象 教程:https://wangdoc.com/javascript/stdlib/obje...
    智勇双全的小六阅读 1,974评论 0 0
  • 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索...
    啊烟雨阅读 854评论 0 0
  • 概述 正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模...
    许先生__阅读 273评论 0 1
  • Fiter过滤器 1.首先创建一个类 2.实现Filter接口 3.重写Filter接口中的方法 init()方法...
    北港初晴_67b7阅读 355评论 0 0