JS基础知识三(正则表达式、arguments变量、JS事件、onsubmit事件、各种对象)

一. 正则表达式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var phone = "13523114333";

        //alert(/^1\d{10}$/.test(phone) ? "合法的手机号码" : "非法的手机号码");

        var re = new RegExp("1\\d{10}$");
     // 注意:在字符串中使用 \d,必须在前面再加一个 \
// 1\\d{10}$ 表示以1开头,后面10个数字结尾的规则, \\d是为了体现\d alert(re.test(phone) ? "合法的手机号码" : "非法的手机号码"); /*//手机号规则: //1) 必须是1开头;2)长度必须要11位;3)必须是数字; var num = phone.charAt(0); if (num != "1") { alert("非法的手机号码!"); } else if (phone.length != 11) { alert("非法的手机号码"); } else { num = parseInt(phone); //把手机号码转换number if (num.toString().length != 11) { alert("非法的手机号码"); } else { alert("有效的手机号"); } }*/ </script> </head> <body> </body> </html>

 

 

二. 匹配QQ号码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        /*
            QQ号码的规则:
                1)必须是数字;2)长度至少5位;
         */
        var re = /^\d{5,}$/
        // ^ 代表开始位置,$ 代表结束位置,\d代表数字,{5,}代表至少5个
        var qq = "888";
        alert(re.test(qq) ? "合法的QQ" : "非法的QQ");

    </script>
</head>
<body>

</body>
</html>

 

 

三. 正则表达式查找方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var content = "hello java Php python go c++ html css R Objectc android Sql c#";

        // 使用正则表达式查找包含3个英文的单词
        var re = /\b[a-z]{3}\b/gi;
        // g模式全文查找,i模式忽略大小写
        // \b表示匹配单词与空格间的位置,比如er\b能匹配到over,不能匹配到verb
        var arr = re.exec(content);
        // exec()找到匹配规则的元素并放到一个数组中
        // 根据正则查找3个英文的单词,并保存到一个数组中
        while (arr != null) {
            alert(arr[0]);
            arr = re.exec(content); // 继续查找下一个符合正则的单词
        }

        /*//查找包含3个英文的单词
        var arr = content.split(" ")
        var newArr = new Array();
        for (var i = 0; i < arr.length; i++) {
            if (arr[i].length == 3 && check(arr[i])) { //获取每一个单词
                newArr.push(arr[i]);
            }
        }
        alert(newArr);

        //检查单词是否都是英文,如果是就返回true,否则返回false。
        function check(word) {
            for (var i = 0; i < word.length; i++) {
                var code = word[i].charCodeAt(0); // 获取第1个英文的ascii码
                //97~122 65~90
                if (!(code >= 97 && code <= 122 || code >= 65 && code <= 90)) {
                    return false;
                }
            }
            return true;
        }*/
    </script>
</head>
<body>

</body>
</html>

 

 

四. 正则表达式替换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var msg = "请联系我13623贰34叁67,请联系我13623234567,请联系我13623234567,请联系我13623234567,请联系我13623234567";
        var re = /1\d{10}/g
        msg = msg.replace(re, "***********"); //replace方法会把所有符合正则表达式的内容替换成***********
                                            //该方法返回替换后的字符串
        alert(msg);
    </script>
</head>
<body>

</body>
</html>

 

 

五. arguments变量

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //定义一个函数,实现任意数的相加
        function sum(a, b) {
            return a + b;
        }

        function sum(a, b, c) { //undefined
            return a + b + c;
        }

        function sum() { //arguments数组保存所有的传入参数
            var result = 0;
            for (var i = 0; i < arguments.length; i++) {
                result += arguments[i];
            }
            return result;
        }

        alert(sum(10, 20, 30, 100)); //NaN
        //sum(10, 20, 30);

    </script>
</head>
<body>

</body>
</html>

 

 

六. JS事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function checkUserName(username) {
            if (username == "") {
                alert("用户名不能够为空!");
            }
        }
    </script>
</head>
<body onload="alert('页面被加载完成...')">
    用户名:<input type="text" value="小宝" onfocus="this.value=''" onblur="checkUserName(this.value)"/><br/>
    居住地:<select onchange="alert(this.value)">
        <option>请选择省份</option>
        <option>广东</option>
        <option>海南</option>
    </select>
    <select>
        <option>请选择城市</option>
        <option>深圳</option>
        <option>广州</option>
    </select>

</body>
</html>

 

 

七. onsubmit事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //表单验证
        function validate() {
            //验证每一个表单项是否符合规则。如果符合就返回true,否则返回false。
            var username = document.getElementById("username").value; //获取用户名
            var userpass = document.getElementById("userpass").value; //获取密码
            var userNameRegex = /^[a-z0-9]{6,}$/i;
            if (!userNameRegex.test(username)) {
                alert("用户名不符合规则");
                return false;
            }
            var userPassRegex = /^.{6,12}$/i;
            if (!userPassRegex.test(userpass)) {
                alert("密码长度必须6~12位");
                return false;
            }
            return true;
        }
    </script>
</head>
<body>
    <!-- onsubmit:提交表单前执行指定的js代码。如果onsubmit中返回true,就会提交表单,否则不提交表单 -->
    <form action="http://www.baidu.com" method="post" onsubmit="return validate()">
        <!-- 规则:不能够为空,必须是英文和数字组成,长度不能够少于6个字符 -->
        用户名:<input type="text" id="username" name="username" title="请输入用户名" placeholder="请输入用户名" value=""/><br/>
        <!-- 规则:长度必须6~12位之间的字符 -->
        密码:<input type="text" id="userpass" name="userpass"/><br/>
        <!-- 同一组单选框的name属性必须相同 -->
        性别:男<input type="radio" name="gender" value="male" checked/><input type="radio" name="gender" value="female"/><br/>
        <!-- 同一组的复选框的name属性必须相同 -->
        兴趣爱好:吃<input type="checkbox" name="hobby" value="eat"/><input type="checkbox" name="hobby" value="drink"/><input type="checkbox" name="hobby" value="play"/><br/>
        居住地:
        <select>
            <option>请选择省份</option>
            <option>广东省</option>
            <option>湖南省</option>
        </select>
        <select name="city">
            <option>请选择城市</option>
            <option>深圳</option>
            <option>广州</option>
            <option>惠州</option>
        </select><br/>
        大头照:<input type="file"/><br/>
        自我介绍:<textarea name="introduce" cols="30" rows="5"></textarea><br/>
        <!--
            submit: 提交按钮
            button: 普通按钮
        -->
        <input type="submit" value="注册"/>
        <input type="reset" value="重置"/>
    </form><br/>
</body>
</html>

 

 

八. windows对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        /*var num = 10; //全局变量,保存在window对象中
        //alert(window.num);
        alert(num);

        function sayHello() { //该函数实际上也是保存在window对象中
            alert("你好");
        }

        //window.sayHello();
        sayHello();*/

        function openWindow() {
            /*
            * 打开窗口
            *   第一个参数:url地址
            *   第二个参数:窗口名字
            *   第三个参数:特征
            * */
            window.open("http://www.baidu.com", "百度", "width=500,height=300,left=100,top=100,location=no,scrollbars=no");
        }

        function closeWindow() {
            close(); //关闭窗口
        }

        var taskId; //定时器ID

        //启动定时器
        function startInterval() {
            if (taskId == null) {
                //定时器,每隔3秒重复执行changeImg函数
                taskId = window.setInterval("changeImg()", 3000);
            }
        }

        var i = 1;

        function changeImg() {
            i++;
            document.getElementById("slide").src = "images/" + i + ".jpg";

            if (i == 3) {
                i = 0;
            }
        }

        function stopInterval() {
            //取消定时器
            window.clearInterval(taskId);
            taskId = null;
        }

        function showImg() {
            window.setTimeout(function() {
                document.getElementById("slide").style.display = "block"; //显示图片
            }, 3000); //指定3秒后执行匿名函数中的js代码
        }
    </script>
</head>
<body onload="showImg()">
    <input type="button" value="打开窗口" onclick="openWindow()"/><br/>
    <input type="button" value="关闭窗口" onclick="closeWindow()"/><br/>
    <input type="button" value="启动定时器" onclick="startInterval()"/>
    <input type="button" value="停止定时器" onclick="stopInterval()"/><br/>

    <!--
        display: 控制HTML元素是否显示
            none:不显示
            block:显示
    -->
    <img id="slide" src="images/1.jpg" width="500" height="300" style="display:none"/>
</body>
</html>

 

 

九. location对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function gotoUrl() {
            location.href = "http://www.baidu.com"; //跳转页面
        }
    </script>
</head>
<body>
    <input type="button" onclick="gotoUrl()" value="百度"/>
</body>
</html>

 

 

十. screen对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function openWindow() {
            //弹出框的宽度和高度
            var width = 500;
            var height = 300;
            //获取屏幕的宽度和高度
            var screenWidth = window.screen.availWidth;
            var screenHeight = window.screen.availHeight;

            var x = (screenWidth - width) / 2;
            var y = (screenHeight - height) / 2;
            /*
            * 打开窗口
            *   第一个参数:url地址
            *   第二个参数:窗口名字
            *   第三个参数:特征
            * */
            window.open("http://www.baidu.com", "百度",
                "width=" + width + ",height=" + height + ",left=" + x
                    + ",top=" + y + ",location=no,scrollbars=no");
        }
    </script>
</head>
<body>
    <input type="button" value="打开窗口" onclick="openWindow()"/><br/>
</body>
</html>

 

 

十一. navigator对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //获取浏览器的名称
        alert(window.navigator.appName);
        //获取浏览器的版本信息
        alert(window.navigator.appVersion);
    </script>
</head>
<body>

</body>
</html>

 

posted @ 2019-02-26 20:20  星满夜空  阅读(274)  评论(0编辑  收藏  举报