zoukankan      html  css  js  c++  java
  • 精通Javascript动态网页编程

    8.10  定位符与原义字符

    在验证时,要用到一些定位符,来限定字符出现的位置,以方便匹配。同时,对于表达式中的元字符,必须进行转义,使其变成原义字符才能正常显示。本节介绍这两种应用。

    8.10.1  用于文本验证的定位符

    定位符用于规定匹配模式在目标字符串中的出现位置。例如,只能出现在开头或结尾处,这对文本格式的验证非常有用。在正则表达式中,有以下几个定位符。

    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>正则表达式/^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>正则表达式/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>正则表达式 /""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对象实例的一种方式是将表达式嵌套在一对“/”中,所以,在表达式模式中,要表示字面意义的“/”也要用“"/”进行转义。

  • 相关阅读:
    软工实践寒假作业(1/2)
    软工总结
    软件工程第一次结对作业
    软工实践第一次个人编程作业
    软工实践第一次作业
    2019年北航OO第四单元(UML任务)及学期总结
    2019年北航OO第三单元(JML规格任务)总结
    用Maven+IDEA+Eclipse组合获得最好的OpenJML体验
    2019年北航OO第二单元(多线程电梯任务)总结
    2019年北航OO第一单元(表达式求导任务)总结
  • 原文地址:https://www.cnblogs.com/goody9807/p/1085937.html
Copyright © 2011-2022 走看看