精通Javascript動態網頁編程

來源:互聯網
上載者:User
文章目錄
  • 8.10  定位器與原義字元
  • 8.10.1  用於文本驗證的定位器
8.10  定位器與原義字元

在驗證時,要用到一些定位器,來限定字元出現的位置,以方便匹配。同時,對於運算式中的元字元,必須進行轉義,使其變成原義字元才能正常顯示。本節介紹這兩種應用。

8.10.1  用於文本驗證的定位器

定位器用於規定匹配模式在目標字串中的出現位置。例如,只能出現在開頭或結尾處,這對文字格式設定的驗證非常有用。在Regex中,有以下幾個定位器。

1.用 ^ 匹配目標字串的開始位置

匹配必鬚髮生在目標字串的開頭處,^必須出現在運算式的最前面才具有定位器作用。例如,“^o”與“ok”中的o匹配,但與“hello”中的o不匹配。如果設定了RegExp對象執行個體的Multiline屬性,^還會與行首匹配,即與“"n”、“"r”之後的位置匹配。代碼8.11示範了該字元的使用。

代碼8.11  行首匹配字元^:8.11.htm

<html>

<head><title>行首匹配字元^</title></head>

<body>

   <h1>行首匹配字元^</h1>

   <script language="JavaScript">

   <!--

      var reg_expression = /^zt/;  //使用行首元字元

      var textString=prompt("請輸入要檢查的字串:","");

      var result=reg_expression.test(textString);  //匹配時返回true,否則false

      document.write("<font size='+1'><b>"+result+"<br>");

      if(result){

          document.write("<b>Regex/^zt/匹配字串"""+ textString +""".<br>");

      }

      else{

          alert("未找到匹配!");

      }

   // -->

   </script>

</body>

</html>

運行該段代碼,會彈出一個對話方塊,要求使用者輸入一個字串。如果輸入zt129837op2ueop(8.12所示),並單擊“確定”按鈕,在瀏覽器視窗中會顯示匹配成功的相關內容,8.13所示。

   

       圖8.12  輸入字串zt129837op2ueop                       圖8.13  顯示匹配成功

2.用 $ 匹配目標字串的結尾位置

匹配必鬚髮生在目標字串的結尾處,$必須出現在運算式的最後面才具有定位器作用。例如,“o$”與“hello”中的o匹配,但與“ok”中的o不匹配。如果設定了RegExp對象執行個體的mutiline屬性,$還會與行尾匹配,即與“"n”、“"r”之前的位置匹配。代碼8.12示範了該字元的使用。

代碼8.12  行尾匹配字元$:8.12.htm

<html>

<head>

<title>行尾匹配字元$</title>

</head>

<body>

   <h1>行尾匹配字元$</h1>

   <script language="JavaScript">

   <!--

      var reg_expression = /zt$/;

      var textString=prompt("請輸入要檢查的字串:","");

      var result=reg_expression.test(textString);  //匹配時返回true,否則false

      document.write("<font size='+1'><b>"+result+"<br>");

      if(result){

          document.write("<b>Regex/zt$/匹配字串"""+ textString +""".<br>");

      }

      else{

          alert("未找到匹配!");

   }

   // -->

   </script>

</body>

</html>

運行該段代碼,會彈出一個對話方塊,要求使用者輸入一個字串。如果輸入qweriqupoiasdzt(8.14所示),並單擊“確定”按鈕,在瀏覽器視窗中會顯示匹配成功的相關內容,8.15所示。

  

        圖8.14  輸入字串qweriqupoiasdzt                      圖8.15  顯示匹配成功

3.用 "b 匹配一個字邊界

"b包含了字與空格間的位置,以及目標字串的開始和結束位置等。例如,“er"b”匹配“never ok”中的“er”,但不匹配“verb”中的“er”。代碼8.13示範了該字元的使用。

代碼8.13  行尾匹配字元$:8.13.htm

<html><head><title>使用元字元"b</title>

</head>

<body>

<h1>使用元字元"b</h1>

<script language="JavaScript">

<!--

    var reg_expression = /"bman"b/;

    var textString=prompt("請輸入要檢查的字串:","");

    var result=reg_expression.test(textString);  //匹配時返回true,否則false

    document.write("<font size='+1'><b>"+result+"<br>");

    if(result){

        document.write("<b>Regex /""bman""b/匹配字串"""+ textString +""".<br>");

    }

    else{

        alert("未找到匹配!");

    }

// -->

</script>

</body>

</html>

運行該段代碼,會彈出一個對話方塊,要求使用者輸入一個字串。如果輸入“man woman”(8.16所示),並單擊“確定”按鈕,在瀏覽器視窗中會顯示匹配成功的相關內容,8.17所示。

 

          圖8.16  輸入字串“man woman”                    圖8.17  顯示匹配成功

4.用 "B 匹配非字邊界

例如,“er"B”匹配“verb”中的“er”,但不匹配“never”中的“er”。

8.10.2  對特殊字元進行轉義

在運算式中用到的一些元字元不再表示原來的字面意義,如果要匹配這些有特殊意義的元字元,必須使用“"”將這些字元轉義為原義字元。需要進行轉義的字元有“$”、“(”、“)”、“*”、“+”、“.”、“[”、“]”、“?”、“"”、“/”、“^”、“{”、“}”、“|”。

     “"”的作用是將下一字元標記為特殊字元、原義字元、反向引用或八進位轉義符,所以,要匹配字面意義的“"”,需要使用“""”表示。

     建立RegExp對象執行個體的一種方式是將運算式嵌套在一對“/”中,所以,在運算式模式中,要表示字面意義的“/”也要用“"/”進行轉義。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.