1. 程式人生 > 其它 >JavaScript物件(二)

JavaScript物件(二)

陣列物件

  • 用於儲存一組有序的任意型別的物件
  1. 陣列物件是一系列有序的值的集合,可以存放任何型別的資料,建議只存放一種型別資料

方法:

陣列的使用

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title></title>
        <script type="text/javascript">
            var arr0 = new Array();
            
var arr1 = new Array(3); var arr2 = new Array("謝燦軟體", "www.xiecan.cc"); var arr3 = ["謝燦軟體", "www.xiecan.cc"]; arr0[0] = "謝燦軟體"; arr0[1] = "www.xiecan.cc"; document.write(arr0.length + "<br>"); //輸出2 document.write(arr0 + "<br>
"); //輸出"謝燦軟體,www.xiecan.cc" arr0.length = 0; document.write(arr0.length + "<br>"); //輸出0 document.write(arr0 + "<br>"); // arr0[0] = "謝燦軟體"; arr0[1] = "www.xiecan.cc"; for (var i = 0; i < arr0.length; i++) { document.write(
"arr0["+ i + "] = "+ arr0[i]); } document.write("<br>"); for (var i in arr0) { document.write("arr0[" + Number(i) + "] = " + arr0[i]); } </script> </head> <body> </body> </html>

陣列物件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title></title>
        <script type="text/javascript">
            var arr1 = new Array("謝燦軟體", "www.xiecan.cc");
            var arr2 = ["謝燦軟體", "www.xiecan.cc"];

            document.write(arr1.concat(arr2) + "<br>");

            document.write(arr1.join("-") + "<br>"); 
            
            arr1.pop();
            document.write(arr1 + "<br>");
            arr1.shift();
            document.write(arr1 + "<br>");

            arr1.push(20);
            document.write(arr1 + "<br>");
            arr1.unshift("測試");
            document.write(arr1 + "<br>");

            arr1.reverse();
            document.write(arr1 + "<br>");

            document.write(arr1.slice(1) + "<br>"); 

            arr1.sort();
            document.write(arr1 + "<br>");

            //1 開始位置
            //2 刪除數量
            //3 替換新值
            arr1.splice(0, 1);
            document.write(arr1 + "<br>");
            arr1.splice(0, 0, "測試1");
            document.write(arr1 + "<br>");
        </script>
    </head>
    
    <body>
    
    </body>
</html>

動態切換

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="zh-cn">
    <head>
        <title></title>
        <style type="text/css">
            body
            {
                text-align:center;
            }
        </style>

        <script type="text/javascript">
            window.onload = function () {
                var img = document.getElementById("img");
                var arr = ["Img/img1.jpg", "Img/img2.jpg",
                "Img/img3.jpg", "Img/img4.jpg"];

                var num = 1;
                setInterval(function () {
                    num++;
                    if (num == arr.length)
                        num = 0;
                    img.src = arr[num];
                }, 1000);
            }
        </script>
    </head>
    
    <body>
        <img id="img" alt="" src="Img/img1.jpg" />
    </body>
</html>

js不支援多維陣列但是可以用:

多維陣列

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        var citys = new Array();
        citys["河南"] = ["鄭州", "開封", "焦作", "商丘"]
        citys[1] = ["武漢", "天門", "黃石", "赤壁"]
        for (var i in citys) {
            document.write(citys[i] + "<br>");
            for (var j = 0; j < citys[i].length; j++) {
                document.write((citys[i][j]) + "<br>");
            }
        }
    </script>
</head>
<body>
</body>
</html>

正則表示式物件

  • 主要用於驗證表單資訊
  1. 正則表示式主要用於表單驗證,如手機號、郵箱、身份證等

在使用正則表示式之前,首先要建立正則表示式物件。JavaScript提供了兩種構建方法:

使用正則標識字串

  • var reg = /pattern/[flags]

使用內建正則表示式物件

  • var reg = new RegExp("pattern",["flags"])
  • pattern表示要使用的正則表示式模式,也就是由的特殊字元或普通字元所組成的表示式。 flags標誌位,可選項,有g(全文查詢)、i(忽略大小寫)、m(多行查詢)三種。
  • compile()方法。把正則表示式編譯為內部格式,從而執行更快 使用新正則去替換舊正則,主要用於提升比較複雜和耗時的處理過程的效能,一般情況下很少使用。
  • exec()方法。用正則表示式在字串中查詢,並返回包含結果的一個數組。 不僅用於判斷給定的字串是否匹配,而且會返回匹配結果的詳細資訊。
  • test()方法。返回一個bool值,它指出被查詢的字串是否匹配給定的模式。 使用頻繁,主要用於匹配測試。匹配成功返回true,否則返回false。

正則表示式方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title></title>        <style type="text/css">
           body
           {
               text-align:center;
           }
           #Text1
           {
               color:Red;
               font-size:20px;
               text-align:left;
               white-space: normal;
               height: 30px;
               width: 400px;
           }
        </style>
        <script type="text/javascript">
            window.onload = function () {

                document.getElementById("btnYX1").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
                    alert(reg.test(txt));
                }

                document.getElementById("btnDH1").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /^\d{3,4}-(\d{7,8})$/;
                    alert(reg.test(txt));
                }

                document.getElementById("btnSZ1").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /^[0-9]+([.][0-9]+){0,1}$/;
                    alert(reg.test(txt));
                }

                document.getElementById("btnZW1").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /^[\u4e00-\u9fa5]+$/;
                    alert(reg.test(txt));
                }

                document.getElementById("btnYW1").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /^[a-zA-Z]+$/;
                    alert(reg.test(txt));
                }

                document.getElementById("btnIP1").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/;
                    alert(reg.test(txt));
                }

                document.getElementById("btnKB1").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /^\n\s*\r$/;
                    alert(reg.test(txt));
                }

                document.getElementById("btnYX2").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
                    alert(reg.exec(txt));
                }

                document.getElementById("btnDH2").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /\d{3,4}-(\d{7,8})/;
                    alert(reg.exec(txt));
                }

                document.getElementById("btnSZ2").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /[0-9]+([.][0-9]+){0,1}/;
                    alert(reg.exec(txt));
                }

                document.getElementById("btnZW2").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /[\u4e00-\u9fa5]+/;
                    alert(reg.exec(txt));
                }

                document.getElementById("btnYW2").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /[a-zA-Z]+/;
                    alert(reg.exec(txt));
                }

                document.getElementById("btnIP2").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))/;
                    alert(reg.exec(txt));
                }

                document.getElementById("btnKB2").onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    var reg = /\n\s*\r/;
                    alert(reg.exec(txt));
                }
            }
        </script>
    </head>
    <body>
        <input id="Text1" type="text" value="[email protected]" />
        <div>
            <input id="btnYX1" type="button" value="郵箱1" />
            <input id="btnDH1" type="button" value="電話1" />
            <input id="btnSZ1" type="button" value="數字1" />
            <input id="btnZW1" type="button" value="中文1" />
            <input id="btnYW1" type="button" value="英文1" />
            <input id="btnIP1" type="button" value="I  P1" />
            <input id="btnKB1" type="button" value="空行1" />
        </div>
        <div>
            <input id="btnYX2" type="button" value="郵箱2" />
            <input id="btnDH2" type="button" value="電話2" />
            <input id="btnSZ2" type="button" value="數字2" />
            <input id="btnZW2" type="button" value="中文2" />
            <input id="btnYW2" type="button" value="英文2" />
            <input id="btnIP2" type="button" value="I  P2" />
            <input id="btnKB2" type="button" value="空行2" />
        </div>
    </body>
</html>

驗證電話號碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title></title>
        <script type="text/javascript">
//            function isPhoneNumber(phone) {
//                //11位和12位電話號碼
//                if (phone.length == 12 || phone.length == 13) {
//                    for (var i = 0; i < phone.length; i++) {
//                        //檢查連線符是否正確
//                        if (phone.charAt(4) != "-")
//                            return false;
//                        //檢查是否全部為數字
//                        else if (phone.charAt(i) < 0 || phone.charAt(i) > 9) {
//                            return false;
//                        }
//                    }
//                    return true;
//                }
            //            }
            function isPhoneNumber(phone) {
                var reg = /^\d{4}[-]\d{7,8}$/;
                return reg.test(phone);
            }
        </script>
    </head>
    <body onload="alert(isPhoneNumber('0370-1234567'));">
    </body>
</html>

驗證中文字元:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title></title>
        <style type="text/css">
           body
           {
               text-align:center;
           }
           #Text1
           {
               color:Red;
               font-size:20px;
               text-align:left;
               white-space:pre-wrap;
                height: 277px;
                width: 318px;
           }
        </style>
        <script type="text/javascript">
            window.onload = function () {
                var test = document.getElementById("TEST");
                var exec = document.getElementById("EXEC");
                var reg = /^[\u4e00-\u9fa5]+$/;//{2,4}
                test.onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    alert(reg.test(txt));
                }
                exec.onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    alert(reg.exec(txt));
                }
            }
        </script>
    </head>
    <body>
        <input id="Text1" type="text" value="謝燦軟體 www.xiecan.cc" />
        <br>
        <input id="TEST" type="button" value="TEST" />
        <input id="EXEC" type="button" value="EXEC" />
    </body>
</html>

驗證電子郵箱:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title></title>
        <style type="text/css">
           body
           {
               text-align:center;
           }
           #Text1
           {
               color:Red;
               font-size:20px;
               text-align:left;
               white-space: normal;
               height: 31px;
               width: 400px;
           }
        </style>
        <script type="text/javascript">
            window.onload = function () {
                var test = document.getElementById("TEST");
                var exec = document.getElementById("EXEC");
                var reg = /^\w+@\w+[.]\w+[.]?\w+$/;  //. 匹配出\n  \d數值  \D非數值
                test.onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    alert(reg.test(txt));
                }
                exec.onclick = function () {
                    var txt = document.getElementById("Text1").value;
                    alert(reg.exec(txt));
                }
            }
        </script>
    </head>
    <body>
        <input id="Text1" type="text" value="[email protected]" />
        <br/>
        <input id="TEST" type="button" value="TEST" />
        <input id="EXEC" type="button" value="EXEC" />
    </body>
</html>

驗證表單:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title></title>
<!--        <script type="text/javascript">
            window.onload = function () {
                var reg1 = /^\d{3,4}[-]\d{7,8}$/;
                //返回true
                alert(reg1.test('0370-1234567'));
                //返回0370-1234567
                alert(reg1.exec('電話號碼:0370-1234567'));
            }
        </script>-->

        <script type="text/javascript">

            function btnonclick() {
                var txtName = document.getElementById("Text1");
                var strName = txtName.value;
                var regName = /^[\u4e00-\u9fa5]+$/;
                if (!regName.test(strName)) {
                    alert("帳號含有非中文字元");
                }

                var txtPwd = document.getElementById("Text2");
                var strPwd = txtPwd.value;
                var regPwd = /^[0-9a-zA-Z_]{8,}$/;
                if (!regPwd.test(strPwd)) {
                    alert("密碼必須是字母、數字或下劃線,且不能低於8位");
                }

                var txtEml = document.getElementById("Text3");
                var strEml = txtEml.value;
                var regEml = /^[0-9a-zA-Z_.]+@[0-9a-zA-Z_]+[.][0-9a-zA-Z_]+$/;
                if (!regEml.test(strEml)) {
                    alert("非法的郵箱格式");
                }
            }

        </script>

    </head>
    <body>
    
        <p>
            帳號:<input id="Text1" type="text" />必須是中文</p>
        <p>
            密碼:<input id="Text2" type="text" />必須是字母、數字或下劃線,不能低於8位</p>
        <p>
            郵箱:<input id="Text3" type="text" /></p>
        <p>
            <input id="Button1" type="button" value="取消" />
            <input id="Button2" type="button" value="確定" onclick="return btnonclick()" /></p>
    
    </body>
</html>

正則表示式與字串

  • match() 使用正則表示式模式對字串執行查詢,並將結果作為陣列返回 。
  • replace() 返回根據正則表示式進行文字替換後的字串。
  • search() 返回與正則表示式查詢內容匹配的第一個子字串的位置,不支援全域性搜尋。
  • split() 使用正則表示式模式對字串進行切割,並將結果作為陣列返回。

正則表示式與字串方法:

去除首尾空格:

鏈式程式設計

JSON物件