<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-26  評(píng)論-111  文章-19  trackbacks-0

     

            正則表達(dá)式(regular expression)對(duì)象包含一個(gè)正則表達(dá)式模式(pattern)。它具有用正則表達(dá)式模式去匹配或代替一個(gè)串(string)中特定字符(或字符集合)的屬性(properties)和方法(methods)。 要為一個(gè)單獨(dú)的正則表達(dá)式添加屬性,可以使用正則表達(dá)式構(gòu)造函數(shù)(constructor function),無(wú)論何時(shí)被調(diào)用的預(yù)設(shè)置的正則表達(dá)式擁有靜態(tài)的屬性(the predefined RegExp object has static properties that are set whenever any regular expression is used, 我不知道我翻得對(duì)不對(duì),將原文列出,請(qǐng)自行翻譯)。

    • 創(chuàng)建:
      一個(gè)文本格式或正則表達(dá)式構(gòu)造函數(shù)
      文本格式: /pattern/flags
      正則表達(dá)式構(gòu)造函數(shù): new RegExp("pattern"[,"flags"]);
    • 參數(shù)說(shuō)明:
      pattern -- 一個(gè)正則表達(dá)式文本
      flags -- 如果存在,將是以下值:
      g: 全局匹配
      i: 忽略大小寫(xiě)
      gi: 以上組合

    [注意] 文本格式的參數(shù)不用引號(hào),而在用構(gòu)造函數(shù)時(shí)的參數(shù)需要引號(hào)。如:/ab+c/i new RegExp("ab+c","i")是實(shí)現(xiàn)一樣的功能。在構(gòu)造函數(shù)中,一些特殊字符需要進(jìn)行轉(zhuǎn)意(在特殊字符前加"\")。如:re = new RegExp("\\w+")

    正則表達(dá)式中的特殊字符

    字符 含意
    \

    做為轉(zhuǎn)意,即通常在"\"后面的字符不按原來(lái)意義解釋,如/b/匹配字符"b",當(dāng)b前面加了反斜桿后/\b/,轉(zhuǎn)意為匹配一個(gè)單詞的邊界。
    -或-
    對(duì)正則表達(dá)式功能字符的還原,如"*"匹配它前面元字符0次或多次,/a*/將匹配a,aa,aaa,加了"\"后,/a\*/將只匹配"a*"。

    ^ 匹配一個(gè)輸入或一行的開(kāi)頭,/^a/匹配"an A",而不匹配"An a"
    $ 匹配一個(gè)輸入或一行的結(jié)尾,/a$/匹配"An a",而不匹配"an A"
    * 匹配前面元字符0次或多次,/ba*/將匹配b,ba,baa,baaa
    + 匹配前面元字符1次或多次,/ba*/將匹配ba,baa,baaa
    ? 匹配前面元字符0次或1次,/ba*/將匹配b,ba
    (x) 匹配x保存x在名為$1...$9的變量中
    x|y 匹配x或y
    {n} 精確匹配n次
    {n,} 匹配n次以上
    {n,m} 匹配n-m次
    [xyz] 字符集(character set),匹配這個(gè)集合中的任一一個(gè)字符(或元字符)
    [^xyz] 不匹配這個(gè)集合中的任何一個(gè)字符
    [\b] 匹配一個(gè)退格符
    \b 匹配一個(gè)單詞的邊界
    \B 匹配一個(gè)單詞的非邊界
    \cX 這兒,X是一個(gè)控制符,/\cM/匹配Ctrl-M
    \d 匹配一個(gè)字?jǐn)?shù)字符,/\d/ = /[0-9]/
    \D 匹配一個(gè)非字?jǐn)?shù)字符,/\D/ = /[^0-9]/
    \n 匹配一個(gè)換行符
    \r 匹配一個(gè)回車符
    \s 匹配一個(gè)空白字符,包括\n,\r,\f,\t,\v等
    \S 匹配一個(gè)非空白字符,等于/[^\n\f\r\t\v]/
    \t 匹配一個(gè)制表符
    \v 匹配一個(gè)重直制表符
    \w 匹配一個(gè)可以組成單詞的字符(alphanumeric,這是我的意譯,含數(shù)字),包括下劃線,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
    \W 匹配一個(gè)不可以組成單詞的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。

    說(shuō)了這么多了,我們來(lái)看一些正則表達(dá)式的實(shí)際應(yīng)用的例子:

    E-mail地址驗(yàn)證:
     function test_email(strEmail) {
      var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
      if(myReg.test(strEmail)) return true;
      return false;
     }
    HTML代碼的屏蔽
     function mask_HTMLCode(strInput) {
       var myReg = /<(\w+)>/;
       return strInput.replace(myReg, "&lt;$1&gt;");
     }

    正則表達(dá)式對(duì)象的屬性及方法
      預(yù)定義的正則表達(dá)式擁有有以下靜態(tài)屬性:input, multiline, lastMatch, lastParen, leftContext, rightContext和$1到$9。其中input和multiline可以預(yù)設(shè)置。其他屬性的值在執(zhí)行過(guò)exec或test方法后被根據(jù)不同條件賦以不同的值。許多屬性同時(shí)擁有長(zhǎng)和短(perl風(fēng)格)的兩個(gè)名字,并且,這兩個(gè)名字指向同一個(gè)值。(JavaScript模擬perl的正則表達(dá)式)
    正則表達(dá)式對(duì)象的屬性
    屬性 含義
    $1...$9 如果它(們)存在,是匹配到的子串
    $_ 參見(jiàn)input
    $* 參見(jiàn)multiline
    $& 參見(jiàn)lastMatch
    $+ 參見(jiàn)lastParen
    $` 參見(jiàn)leftContext
    $’          參見(jiàn)rightContext
    constructor    創(chuàng)建一個(gè)對(duì)象的一個(gè)特殊的函數(shù)原型
    global       是否在整個(gè)串中匹配(bool型)
    ignoreCase     匹配時(shí)是否忽略大小寫(xiě)(bool型)
    input        被匹配的串
    lastIndex     最后一次匹配的索引
    lastParen     最后一個(gè)括號(hào)括起來(lái)的子串
    leftContext    最近一次匹配以左的子串
    multiline     是否進(jìn)行多行匹配(bool型)
    prototype     允許附加屬性給對(duì)象
    rightContext    最近一次匹配以右的子串
    source       正則表達(dá)式模式
    lastIndex     最后一次匹配的索引

    正則表達(dá)式對(duì)象的方法
    方法 含義
    compile      正則表達(dá)式比較
    exec        執(zhí)行查找
    test        進(jìn)行匹配
    toSource      返回特定對(duì)象的定義(literal representing),其值可用來(lái)創(chuàng)建一個(gè)新的對(duì)象。重載Object.toSource方法得到的。
    toString      返回特定對(duì)象的串。重載Object.toString方法得到的。
    valueOf      返回特定對(duì)象的原始值。重載Object.valueOf方法得到
    例子
    <script language = "JavaScript">
    var myReg = /(\w+)\s(\w+)/;
    var str  = "John Smith";
    var newstr = str.replace(myReg, "$2, $1");
    document.write(newstr);
    </script>
    將輸出"Smith, John"
    posted on 2005-10-09 14:55 snoics 閱讀(342) 評(píng)論(0)  編輯  收藏 所屬分類: 它山之石
    主站蜘蛛池模板: 免费国产草莓视频在线观看黄| 亚洲AV综合色区无码一区爱AV| 大学生高清一级毛片免费| 蜜臀AV免费一区二区三区| 99热在线精品免费播放6| 特级精品毛片免费观看| 午夜影院免费观看| 亚洲免费在线视频播放| 国内精品免费麻豆网站91麻豆| 成人免费激情视频| 日韩欧美一区二区三区免费观看| 成年免费大片黄在线观看岛国| 国产免费av片在线看| 国产午夜免费福利红片| 亚洲精品天堂成人片?V在线播放| 亚洲性久久久影院| 亚洲精品成人片在线观看精品字幕| 精品亚洲永久免费精品| 亚洲黄色网址在线观看| 亚洲精品在线播放| 亚洲中文字幕AV每天更新| 亚洲日韩在线中文字幕综合| 人人爽人人爽人人片A免费 | 免费在线观看黄色毛片| 亚洲精品无码成人片在线观看| 在线观看亚洲成人| 911精品国产亚洲日本美国韩国 | 婷婷亚洲天堂影院| 国产亚洲大尺度无码无码专线| 亚洲国产另类久久久精品| 亚洲精品成人图区| 国产成人亚洲综合无| 18禁在线无遮挡免费观看网站| 曰批全过程免费视频网址| 四虎影院免费在线播放| 久久亚洲国产成人影院网站| 久久青青草原亚洲av无码app| 国产色在线|亚洲| 一级特级aaaa毛片免费观看| 久久久久久夜精品精品免费啦| 成年在线观看免费人视频草莓|