甜咖啡

          我的IT空間

          javascript正則表達式

           

          JavaScript--正則表達式

          正則表達式(regular expression)對象包含一個正則表達式模式(pattern)。它具有用正則表達式模式去匹配或代替一個串(string)中特定字符(或字符集合)的屬性(properties)和方法(methods)

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

          在構造函數中,一些特殊字符需要進行轉意(在特殊字符前加""")。正則表達式中的特殊字符: 
          "
          轉意,即通常在"""后面的字符不按原來意義解釋,如/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
          {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]

          說了這么多了,我們來看一些正則表達式的實際應用的例子:
          HTML
          代碼的屏蔽
           function mask_HTMLCode(strInput) {
             var myReg = /<("w+)>/;
             return strInput.replace(myReg, "&lt;$1&gt;");
           }
          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;
           }

          正則表達式對象的屬性及方法:
          預定義的正則表達式擁有有以下靜態屬性:input, multiline, lastMatch, lastParen, leftContext,rightContext$1$9。其中inputmultiline可以預設置。其他屬性的值在執行過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方法得到 

          例子

          1.                     <script language = "JavaScript">

          2.                     var myReg = /(w+)s(w+)/;

          3.                     var str = "John Smith";

          4.                     var newstr = str.replace(myReg, "$2, $1");

          5.                     document.write(newstr);

          6.                     </script>

          7.                     將輸出"Smith, John"

          常用的js正則表達式

          javascript驗證表單時常用

          "^-[0-9]*[1-9][0-9]*$"
            //負整數

          "^-?"d+$"
              //整數

          "^"d+("."d+)?$"
            //非負浮點數(正浮點數 + 0

          "^(([0-9]+".[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*".[0-9]+)|([0-9]*[1-9][0-9]*))$"
            //正浮點數

          "^((-"d+("."d+)?)|(0+(".0+)?))$"
            //非正浮點數(負浮點數 + 0

          "^(-(([0-9]+".[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*".[0-9]+)|([0-9]*[1-9][0-9]*)))$"
            //負浮點數

          "^(-?"d+)("."d+)?$"
            //浮點數

          "^[A-Za-z]+$"
            //26個英文字母組成的字符串

          "^[A-Z]+$"
            //26個英文字母的大寫組成的字符串

          "^[a-z]+$"
            //26個英文字母的小寫組成的字符串

          "^[A-Za-z0-9]+$"
            //由數字和26個英文字母組成的字符串

          "^"w+$"
            //由數字、26個英文字母或者下劃線組成的字符串

          "^["w-]+(".["w-]+)*@["w-]+(".["w-]+)+$"
              //email地址

          "^[a-zA-z]+://("w+(-"w+)*)(".("w+(-"w+)*))*("?"S*)?$"
            //url

          posted on 2010-03-31 09:07 甜咖啡 閱讀(197) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          <2010年3月>
          28123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          統計

          常用鏈接

          留言簿(1)

          我參與的團隊

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新民市| 汉寿县| 旌德县| 甘孜县| 海阳市| 芷江| 信阳市| 宁都县| 项城市| 南宁市| 昌吉市| 盖州市| 花莲市| 西城区| 香港 | 芦溪县| 赤城县| 乳源| 华宁县| 扶绥县| 阿拉善右旗| 呼和浩特市| 夏邑县| 顺义区| 灵川县| 太仆寺旗| 西乡县| 德惠市| 普安县| 图片| 衡阳市| 曲麻莱县| 沛县| 内乡县| 灵武市| 共和县| 衡水市| 白城市| 枣庄市| 定南县| 嵊州市|