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

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

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

    從制造到創造
    軟件工程師成長之路
    posts - 292,  comments - 96,  trackbacks - 0

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

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

    [注意] 文本格式的參數不用引號,而在用構造函數時的參數需要引號。如:/ab+c/i new RegExp("ab+c","i")是實現一樣的功能。在構造函數中,一些特殊字符需要進行轉意(在特殊字符前加"\")。如:re = new RegExp("\\w+")

    正則表達式中的特殊字符

    字符 含意
    \

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

    ^ 匹配一個輸入或一行的開頭,/^a/匹配"an A",而不匹配"An a"
    $ 匹配一個輸入或一行的結尾,/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),匹配這個集合中的任一一個字符(或元字符)
    [^xyz] 不匹配這個集合中的任何一個字符
    [\b] 匹配一個退格符
    \b 匹配一個單詞的邊界
    \B 匹配一個單詞的非邊界
    \cX 這兒,X是一個控制符,/\cM/匹配Ctrl-M
    \d 匹配一個字數字符,/\d/ = /[0-9]/
    \D 匹配一個非字數字符,/\D/ = /[^0-9]/
    \n 匹配一個換行符
    \r 匹配一個回車符
    \s 匹配一個空白字符,包括\n,\r,\f,\t,\v等
    \S 匹配一個非空白字符,等于/[^\n\f\r\t\v]/
    \t 匹配一個制表符
    \v 匹配一個重直制表符
    \w 匹配一個可以組成單詞的字符(alphanumeric,這是我的意譯,含數字),包括下劃線,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
    \W 匹配一個不可以組成單詞的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。

    說了這么多了,我們來看一些正則表達式的實際應用的例子:

    E-mail地址驗證:
    ?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;");
    ?}

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

    正則表達式對象的方法

    方法含義
    compile     正則表達式比較
    exec       執行查找
    test       進行匹配
    toSource     返回特定對象的定義(literal representing),其值可用來創建一個新的對象。重載Object.toSource方法得到的。
    toString     返回特定對象的串。重載Object.toString方法得到的。
    valueOf     返回特定對象的原始值。重載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 2006-10-13 23:49 CoderDream 閱讀(178) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    <2006年10月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(9)

    我參與的團隊

    隨筆分類(245)

    隨筆檔案(239)

    文章分類(3)

    文章檔案(3)

    收藏夾(576)

    友情鏈接

    搜索

    •  

    積分與排名

    • 積分 - 457956
    • 排名 - 114

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产v亚洲v天堂无码网站| 成人国产网站v片免费观看| 成人人免费夜夜视频观看| 美美女高清毛片视频黄的一免费| 精品亚洲一区二区三区在线观看| 亚洲色中文字幕在线播放| 亚洲午夜av影院| 99精品视频在线观看免费播放| 亚洲欧美日韩久久精品| 亚洲综合国产一区二区三区| 国产乱子伦精品免费视频| 亚洲免费视频一区二区三区| 啦啦啦完整版免费视频在线观看 | 免费观看男人免费桶女人视频| 亚洲乱码日产精品BD在线观看| 国产成人涩涩涩视频在线观看免费| 国产午夜精品免费一区二区三区| ww亚洲ww在线观看国产| 亚洲色大成网站WWW久久九九 | 无码免费午夜福利片在线 | 亚洲国产成人影院播放| 最近免费中文字幕大全免费版视频| 午夜在线亚洲男人午在线| 亚洲日本中文字幕一区二区三区| 亚洲w码欧洲s码免费| 亚洲精品无码国产片| 亚洲国产精品一区二区成人片国内| 韩国日本好看电影免费看| 久久免费动漫品精老司机 | 亚洲免费黄色网址| 一级毛片免费不卡| 亚洲毛片在线观看| 最近新韩国日本免费观看| 日本黄页网址在线看免费不卡 | 最近免费中文字幕MV在线视频3 | 亚洲 无码 在线 专区| 中国国语毛片免费观看视频| 亚洲AV无码一区二区一二区| 国产亚洲情侣一区二区无码AV| 成人免费午夜视频| 日本高清在线免费|