8-1 对象习题表单验证

1、对象习题

1、将字符串str = “When I was young, I love a girl in neighbor class.”中,从young提取到girl生成新字符串。但是不许数
            var str = "When I was young, I love a girl in neighbor class.";
            //1、找出位置
            var start = str.indexOf("young");
            var end = str.indexOf("girl") + "girl".length;
            var subStr = str.substring(start, end);
            alert(subStr);
2、将字符中单词用空格隔开

已知传入的字符串中只有字母,每个单词的首字母大写,请将每个单词用空格隔开,只保留一个单词的首字母大写
传入:”HelloMyWorld”
返回:”Hello my world”

/*
                split() 将字符串 -> 数组  通过字符串分割的方式
            */
            /*var str = "HelloMyWorld";
            var arr = str.split("");
            // alert(arr);
            // H,e,l,l,o, ,m,y, ,w,o,r,l,d
            //从头到尾遍历,找大写字母。将其改成小写,并且在这个位置插入空格。
            for(var i = 1; i < arr.length; i++){
                if(arr[i] >= "A" && arr[i] <= "Z"){
                    arr[i] = arr[i].toLowerCase();
                    arr.splice(i, 0, " ");
                }
            }
            alert(arr.join(""));*/
/*
            function wordFromStr(str){
                var arr = str.split("");
                
                for(var i = 1; i < arr.length; i++){
                    if(arr[i] >= "A" && arr[i] <= "Z"){
                        arr[i] = arr[i].toLowerCase();
                        arr.splice(i, 0, " ");
                    }
                }
                return arr.join("");
            }

            alert(wordFromStr("HelloMyWorld"));*/
3、.已知一个字符串对象中,英语单词用各种非字母字符分割,统计单词的个数

传入: “Yes,she**is%%my@love.”

        单词判断的标准 
        前一个字符是字母,后一个字符是非字母
        
            function countOfWord(str){
                var count = 0; //用于计数
                for(var i = 0; i < str.length - 1; i++){
                    if(isABC(str[i]) == true && isABC(str[i + 1]) == false){
                        //这就是一个单词
                        count++;
                    }
                }
                return count;
            }

            alert(countOfWord("Yes,she**is%%my@love."));

            //判断一个字符是否是字母
            function isABC(charStr){
                if(charStr >= "A" && charStr <= "Z" || charStr >= "a" && charStr <= "z"){
                    return true;
                }else{
                    return false;
                }
            }

2、onblur

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script>
            /*
                光标获取   获取焦点
                光标离开   失去焦点
            */
        </script>
    </head>
    <body>
        <input type="text" id = "input1" />
    </body>
    <script>
        var oInput = document.getElementById("input1");
        /*
            失去焦点函数
        */
        oInput.onblur = function(){
            alert("失去焦点");
        }
    </script>

3、表单验证

<head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            #login{
                width: 400px;
                height: 200px;
                background-color: orange;
                border: 1px solid black;
                text-align: center;
                padding: 20px;
                margin: 100px auto;
            }
            #login input{
                margin-top: 10px;
                width: 280px;
                height: 22px;
                font-size: 15px
            }
        </style>
    </head>

<body>
        <div id = "login">
            <input id = "username" type="text" placeholder="用户名" />
            <br/ >
            <span id = "username_span">6~18个字符,可使用字母、数字、下划线</span><br />
            <input id = "password" type="text" placeholder="密码" />
        </div>
    </body>
    <script>
        var oUsername = document.getElementById("username");
        var oUsername_span = document.getElementById("username_span");

        //失去焦点的时候。判断是否正确
        oUsername.onblur = function(){
            // 1、如果误输入空格,自动纠错 / /g 全局匹配空格
            oUsername.value = oUsername.value.replace(/ /g, "");
            var oValue = oUsername.value;

            // 2、字符串长度必须是6~18位
            if(oValue.length > 18 || oValue.length < 6){
                oUsername_span.innerHTML = "长度应为6~18个字符";
                //设置颜色为红色
                oUsername_span.style.color = "red";
            }else if(oValue[0] >= "0" && oValue[0] <= "9"){
                oUsername_span.innerHTML = "首字母不能为数字";
                //设置颜色为红色
                oUsername_span.style.color = "red";
            }else{

                
                //整个邮箱都必须符合数字字母下划线
                //dada.dadad
                var isTrue = false; // 没有不符合条件的
                for(var i = 0; i < oValue.length; i++){
                    //一个一个去判断,如果有一个不符合条件,提示错误
                    if(isEmailRule(oValue[i]) == false){
                        isTrue = true;
                        break;
                    }
                }

                if(isTrue){
                    oUsername_span.innerHTML = "只能由数字、字母、下划线组成";
                    oUsername_span.style.color = "red";
                }else{
                    oUsername_span.innerHTML = "符合要求";
                    oUsername_span.style.color = "green";
                }
            }
        }

        //判断一个字符,是否是数字、字母、下划线
        function isEmailRule(charStr){
            if(charStr >= "a" && charStr <= "z" || charStr >= "A" && charStr <= "Z" || charStr >= "0" && charStr <= "9" || charStr == "_"){
                return true;
            }else{
                return false;
            }
        }
        /*
            密码: 1、长度  2、两次输入一致
        */
    </script>

4、字符串作业

/
1.将字符串按照单词进行逆序,空格作为划分单词的唯一条件
传入:”Welome to Beijing”改为 “Beijing to Welcome”
/

            function reverseStr(str){
                var arr = str.split(" ");
                arr.reverse();
                return arr.join(" ");
            }

            /*var str = reverseStr("Welome to Beijing");
            alert(str);*/

/*
2.对称数组
传入一个数组,起元素类型与个数皆未知,返回新数组,
由原数组的元素正序反序拼接而成
传入[“One”, “Two”,”Three”]
返回[“One”, “Two”, “Three”,”Three”,”Two”, “One”]

        */
            function symmetryArr(arr){
                //生成新数组
                var newArr = arr.concat();
                for(var i = arr.length - 1; i >= 0; i--){
                    newArr.push(arr[i]);
                }
                return newArr;
            }

            // alert(symmetryArr(["one", "two", "three"]));

/
3.实现函数,查找子串出现的次数,返回字符串str中出现substring的次数
传入:”abcabcabc”, “abc”
返回:3
/

/*
                supStr.indexOf(subStr, 0);
                supStr.indexOf(subStr, 3);
                supStr.indexOf(subStr, 6);
                supStr.indexOf(subStr, 9);

            */

            function countOfStr(supStr, subStr){

                var start = 0;
                var count = 0;
                while(1){
                    start = supStr.indexOf(subStr, start);
                    if(start == -1){
                        break;
                    }
                    count++;
                    start = start + subStr.length;
                }
                return count;
            }

            alert(countOfStr("abcabcabc", "abc"));

/
4.已知千峰邮箱的用户名只能由数字字母下划线组成,域名为@1000phone.com,判断一个字符串是否是千锋邮箱,是返回true,不是返回false。
[email protected]
[email protected] 不是
[email protected] 不是
/

                function isEmail(email){
                //1、将末尾的14个字符,提取,判断是否是@1000phone.com
                var lastStr = email.substring(email.length - 14, email.length);
                if(lastStr != "@1000phone.com"){
                    return false;
                }else{
                    var arr = email.split("@");
                    var username = arr[0];

                    var count = 0; //记录有几个非法字符
                    //判断用户名 只能由数字字母下划线组成
                    for(var i = 0; i < username.length; i++){
                        if(isEmailRule(username[i]) == false){
                            count++;
                        }
                    }
                    if(count == 0){
                        return true;
                    }else{
                        return false;
                    }

                }
            }
            var res = isEmail("[email protected]");
            alert(res);
                //判断一个字符,是否是数字、字母、下划线
            function isEmailRule(charStr){
                if(charStr >= "a" && charStr <= "z" || charStr >= "A" && charStr <= "Z" || charStr >= "0" && charStr <= "9" || charStr == "_"){
                    return true;
                }else{
                    return false;
                }
            }
        </script>

猜你喜欢

转载自www.cnblogs.com/zhongchao666/p/9275499.html