JavaScript_正则

练习:


1. 找出下面字符串中的bag, beg, big, bog, 忽略大小写, 并将其改为bug: (I am a Big man, I have so mach bag, so veryone call me beg man, bog bog bog, I hate you! )

        var str = '(I am a Big man, I have so mach bag, so veryone call me  beg man, bog bog bog, I hate you! )'
        var str2 = str.replace(/b[aeio]g/gi, "bug")
        console.log(str2);//(I am a bug man, I have so mach bug, so veryone call me  bug man, bug bug bug, I hate you! )


2. 假设有一个多字符的片断重复出现,把"really"、"really really ",以及任意数量连续出现的"really"字符串换成一个简单的"very ”//Billy tried really hard Sally tried really really hard Timmy tried really really really hard Johnny tried really really really really hard)

         var str = "(Billy tried really hard Sally tried really really hard Timmy tried really really really hard Johnny tried really really really really hard)"
         var str2 = str.replace(/(really\s)+/g, "very ")
        console.log(str2);//(Billy tried very hard Sally tried very hard Timmy tried very hard Johnny tried very hard)

3. 有以下表单, 验证用户名, 密码, 手机号
用户名只包含数字, 字母, 下划线, 且长度不小于6位
密码长度在8到16位
手机号要合法
保存到cookie中

        var inputs = document.querySelectorAll("input")
        var p = document.querySelector("p")
        var username = inputs[0]
        var password = inputs[1]
        var tel = inputs[2]
        var button = inputs[3]
        var flag = false

        function validate(value,regx){
            return regx.test(value)
        }
        username.onblur = function(){
            if(!validate(this.value,/^\w{6,}$/)){
                flag = false
                this.value = ""
                this.focus()
                p.style.display = "block"
                p.innerText = `用户名只能为字母,数字,下划线`
            }else if(/\s/.test(username.value) ) {
                flag = false
                this.value = ""
                this.focus()
                p.style.display = "block"
                p.innerText = `请输入账号`
            }else{
                flag = true
                p.style.display = "block"
                p.innerText = `用户可注册`
            }                 
        }
        password.onblur = function(){
            if(!validate(this.value,/^\w{6,16}$/)){
                flag = false
                this.value = ""
                this.focus()
                p.style.display = "block"
                p.innerText = `密码长度在8到16位`
            }else{
                flag = true
                p.style.display = "none"
            }
        }
        tel.onblur = function(){
            if(!validate(this.value,/^0?(13|14|15|18)[0-9]{9}$/)){
                flag = false
                this.value = ""
                this.focus()
                p.style.display = "block"
                p.innerText = `手机号不合法`
            }else{
                flag = true
                p.style.display = "none"
            }
        }
        button.onclick = function () {
            if (flag) {
                var users =localStorage.getItem("users")?JSON.parse(localStorage.getItem("users")):[]
                var user = { username: username.value, password: password.value, tel: tel.value }
                users.push(user)
                localStorage.setItem("users",JSON.stringify(users))
            }
        }    
<style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 250px;
            background-color: skyblue;
            text-align: center;
            padding: 25px 5px;
            box-sizing: border-box;
        }
        p{
            background-color: peachpuff;
            display: none;
        }
    </style>
posted @ 2022-08-11 20:26  苏沐~  阅读(55)  评论(0)    收藏  举报