隨筆 - 0, 文章 - 75, 評論 - 0, 引用 - 0
          數據加載中……

          常用的正則表達式

          關鍵字.matches你懂的











          size=12px]1^d+$  //匹配非負整數(正整數 + 0) 2^[0-9]*[1-9][0-9]*$  //匹配正整數 3^((-d+)|(0+))$  //匹配非正整數(負整數 +
          0)
          4^-[0-9]*[1-9][0-9]*$  //匹配負整數 5^-?d+$    //匹配整數 6^d+(.d+)?$  //匹配非負浮點數(正浮點數 + 0) 7^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮點數 8^((-d+(.d+)?)|(0+(.0+)?))$  //匹配非正浮點數(負浮點數 + 0) 9^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配負浮點數 10^(-?d+)(.d+)?$  //匹配浮點數 11^[A-Za-z]+$  //匹配由26個英文字母組成的字符串 12^[A-Z]+$  //匹配由26個英文字母的大寫組成的字符串 13^[a-z]+$  //匹配由26個英文字母的小寫組成的字符串 14^[A-Za-z0-9]+$  //匹配由數字和26個英文字母組成的字符串 15^w+$  //匹配由數字、26個英文字母或者下劃線組成的字符串 16^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$    //匹配email地址
          17^[a-zA-z]+://匹配(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$  //匹配url 18。匹配中文字符的正則表達式:
          [u4e00
          -u9fa5] 19。匹配雙字節字符(包括漢字在內):[^x00-xff] 20。應用:計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)
          String.prototype.len
          =function(){return this.replace([^x00-xff]/g,"aa").length;}
          21。匹配空行的正則表達式:n[s| ]*r 22。匹配HTML標記的正則表達式:/<(.*)>.*</1>|<(.*) />/ 23。匹配首尾空格的正則表達式:(^s*)|(s*$) * 正則表達式用例
          * 1^S+[a-z A-Z]$ 不能為空 不能有空格 只能是英文字母 * 2、S{6,} 不能為空六位以上 *
          3^d+$ 不能有空格不能非數字
          * 4、(.*)(.jpg|.bmp)$ 只能是jpg和bmp格式 * 5^d{4}-d{1,2}-d{1,2}$ 只能是2004-10-22格式 * 6^0$ 至少選一項 * 7^0{2,}$ 至少選兩項
          * 8^[s|S]{20,}$ 不能為空二十字以上 * 9^+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(.|-))+[a-z]{2,6}$郵件 * 10、w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*([,;]s*w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*)* 輸入多個地址用逗號或空格分隔郵件 * 11^(([0-9]+))?[0-9]{7,8}$電話號碼7位或8位或前面有區號例如(02287341628 *
          12^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(.[a-z A-Z 0-9 _]+)+(,[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(.[a-z A-Z 0-9 _]+)+)*$ * 只能是字母、數字、下劃線;必須有@和.同時格式要規范 郵件 * 13 ^w+@w+(.w+)+(,w+@w+(.w+)+)*$上面表達式也可以寫成這樣子,更精練。 14 ^w+((-w+)|(.w+))*@w+((.|-)w+)*.w+$ [/size]
          匹配中文字符的正則表達式: [u4e00-u9fa5]   
          評注:匹配中文還真是個頭疼的事,有了這個表達式就好辦了

          匹配雙字節字符(包括漢字在內):[^x00-xff]
          評注:可以用來計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)

          匹配空白行的正則表達式:ns*r
          評注:可以用來刪除空白行

          匹配HTML標記的正則表達式:<(S*?)[^>]*>.*?|<.*? />
          評注:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對于復雜的嵌套標記依舊無能為力

          匹配首尾空白字符的正則表達式:^s*|s*$
          評注:可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式

          匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
          評注:表單驗證時很實用

          匹配網址URL的正則表達式:[a-zA-z]+://[^s]*
          評注:網上流傳的版本功能很有限,上面這個基本可以滿足需求

          匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
          評注:表單驗證時很實用

          匹配國內電話號碼:d{3}-d{8}|d{4}-d{7}
          評注:匹配形式如 0511-4405222 或 021-87888822

          匹配騰訊QQ號:[1-9][0-9]{4,}
          評注:騰訊QQ號從10000開始

          匹配中國郵政編碼:[1-9]d{5}(?!d)
          評注:中國郵政編碼為6位數字

          匹配身份證:d{15}|d{18}
          評注:中國的身份證為15位或18位

          匹配ip地址:d+.d+.d+.d+
          評注:提取ip地址時有用

          匹配特定數字:
          ^[1-9]d*$    //匹配正整數
          ^-[1-9]d*$   //匹配負整數
          ^-?[1-9]d*$   //匹配整數
          ^[1-9]d*|0$  //匹配非負整數(正整數 + 0)
          ^-[1-9]d*|0$   //匹配非正整數(負整數 + 0)
          ^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮點數
          ^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配負浮點數
          ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮點數
          ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非負浮點數(正浮點數 + 0)
          ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮點數(負浮點數 + 0)
          評注:處理大量數據時有用,具體應用時注意修正

          匹配特定字符串:
          ^[A-Za-z]+$  //匹配由26個英文字母組成的字符串
          ^[A-Z]+$  //匹配由26個英文字母的大寫組成的字符串
          ^[a-z]+$  //匹配由26個英文字母的小寫組成的字符串
          ^[A-Za-z0-9]+$  //匹配由數字和26個英文字母組成的字符串
          ^w+$  //匹配由數字、26個英文字母或者下劃線組成的字符串
          "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+___FCKpd___0quot;    //email地址
          "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?___FCKpd___0quot;  //url

          匹配中文字符的正則表達式: [u4e00-u9fa5]
          評注:匹配中文還真是個頭疼的事,有了這個表達式就好辦了

          匹配雙字節字符(包括漢字在內):[^x00-xff]
          評注:可以用來計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)

          匹配空白行的正則表達式:ns*r
          評注:可以用來刪除空白行

          匹配HTML標記的正則表達式:<(S*?)[^>]*>.*?|<.*? />
          評注:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對于復雜的嵌套標記依舊無能為力

          匹配首尾空白字符的正則表達式:^s*|s*$
          評注:可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式

          匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
          評注:表單驗證時很實用

          匹配網址URL的正則表達式:[a-zA-z]+://[^s]*
          評注:網上流傳的版本功能很有限,上面這個基本可以滿足需求

          匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
          評注:表單驗證時很實用

          匹配國內電話號碼:d{3}-d{8}|d{4}-d{7}
          評注:匹配形式如 0511-4405222 或 021-87888822

          匹配騰訊QQ號:[1-9][0-9]{4,}
          評注:騰訊QQ號從10000開始

          匹配中國郵政編碼:[1-9]d{5}(?!d)
          評注:中國郵政編碼為6位數字

          匹配身份證:d{15}|d{18}
          評注:中國的身份證為15位或18位

          匹配ip地址:d+.d+.d+.d+
          評注:提取ip地址時有用

          匹配特定數字:
          ^[1-9]d*$    //匹配正整數
          ^-[1-9]d*$   //匹配負整數
          ^-?[1-9]d*$   //匹配整數
          ^[1-9]d*|0$  //匹配非負整數(正整數 + 0)
          ^-[1-9]d*|0$   //匹配非正整數(負整數 + 0)
          ^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮點數
          ^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配負浮點數
          ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮點數
          ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非負浮點數(正浮點數 + 0)
          ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮點數(負浮點數 + 0)
          評注:處理大量數據時有用,具體應用時注意修正

          匹配特定字符串:
          ^[A-Za-z]+$  //匹配由26個英文字母組成的字符串
          ^[A-Z]+$  //匹配由26個英文字母的大寫組成的字符串
          ^[a-z]+$  //匹配由26個英文字母的小寫組成的字符串
          ^[A-Za-z0-9]+$  //匹配由數字和26個英文字母組成的字符串
          ^w+$  //匹配由數字、26個英文字母或者下劃線組成的字符串
          "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+___FCKpd___0quot;    //email地址
          "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?___FCKpd___0quot;  //urlview plaincopy to clipboardprint?
          正則幾個基本概念:

          正則幾個基本概念:view plaincopy to clipboardprint?
          1.貪婪:+,*,?,{m,n}等默認是貪婪匹配,即盡可能多匹配,也叫最大匹配
          如果后面加上?,就轉化為非貪婪匹配,需要高版本支持

          1.貪婪:+,*,?,{m,n}等默認是貪婪匹配,即盡可能多匹配,也叫最大匹配
          如果后面加上?,就轉化為非貪婪匹配,需要高版本支持view plaincopy to clipboardprint?
          2.獲取:默認用(x|y)是獲取匹配,很多時候只是測試,不一定要求得到所匹配的數據,尤其在嵌套匹配或大數據中就要用非獲取匹配(?:x|y),這樣提高了效率,優化了程序。

          2.獲取:默認用(x|y)是獲取匹配,很多時候只是測試,不一定要求得到所匹配的數據,尤其在嵌套匹配或大數據中就要用非獲取匹配(?:x|y),這樣提高了效率,優化了程序。view plaincopy to clipboardprint?
          3.消耗:默認是消耗匹配,一般在預查中是非消耗匹配。
          舉個例子,2003-2-8要變為2003-02-08
          如果用/-(d)-/第二次匹配將從8開始,從而只替換第一個2,錯誤
          如果用/-(d)(?=-)/則第二次匹配從第二個-開始,即不消耗字符-

          3.消耗:默認是消耗匹配,一般在預查中是非消耗匹配。
          舉個例子,2003-2-8要變為2003-02-08
          如果用/-(d)-/第二次匹配將從8開始,從而只替換第一個2,錯誤
          如果用/-(d)(?=-)/則第二次匹配從第二個-開始,即不消耗字符-view plaincopy to clipboardprint?
          4.預查:js中分為正向預查和負向預查
          如上面的(?=pattern)是正向預查,在任何匹配 pattern 的字符串開始處匹配查找字符串。還有(?!pattern)是負向預查,在任何不匹配 pattern 的字符串開始處匹配查找字符串。負向預查有時會用在對[^]的擴充,[^]只是一些字符,而?!可以使整個字符串。

          4.預查:js中分為正向預查和負向預查
          如上面的(?=pattern)是正向預查,在任何匹配 pattern 的字符串開始處匹配查找字符串。還有(?!pattern)是負向預查,在任何不匹配 pattern 的字符串開始處匹配查找字符串。負向預查有時會用在對[^]的擴充,[^]只是一些字符,而?!可以使整個字符串。view plaincopy to clipboardprint?
          5.回調:一般用在替換上,即根據不用的匹配內容返回不用的替換值,從而簡化了程序,需要高版本支持

          5.回調:一般用在替換上,即根據不用的匹配內容返回不用的替換值,從而簡化了程序,需要高版本支持view plaincopy to clipboardprint?
          6.引用:num 對所獲取的第num個匹配的引用。
          例如,'(.)11' 匹配AAA型。'(.)(.)21' 匹配ABBA型。

          6.引用:num 對所獲取的第num個匹配的引用。
          例如,'(.)11' 匹配AAA型。'(.)(.)21' 匹配ABBA型。view plaincopy to clipboardprint?
          正則表達式保留字
          ^ (carat)
          . (period)
          [ (left bracket}
          $ (dollar sign)
          ( (left parenthesis)
          ) (right parenthesis)
          | (pipe)
          * (asterisk)
          + (plus symbol)
          ? (question mark)
          { (left curly bracket, or left brace)
          backslash

          正則表達式保留字
          ^ (carat)
          . (period)
          [ (left bracket}
          $ (dollar sign)
          ( (left parenthesis)
          ) (right parenthesis)
          | (pipe)
          * (asterisk)
          + (plus symbol)
          ? (question mark)
          { (left curly bracket, or left brace)
          backslash view plaincopy to clipboardprint?
          構造 匹配于

          構造 匹配于 view plaincopy to clipboardprint?
          字符
          x 字符 x
          \ 反斜線字符
          n 八進制值的字符0n (0 <= n <= 7)
          nn 八進制值的字符 0nn (0 <= n <= 7)
          mnn 八進制值的字符0mnn 0mnn (0 <= m <= 3, 0 <= n <= 7)
          xhh 十六進制值的字符0xhh
          uhhhh 十六進制值的字符0xhhhh
          t 制表符('u0009')
          n 換行符 ('u000A')
          r 回車符 ('u000D')
          f 換頁符 ('u000C')
          a 響鈴符 ('u0007')
          e 轉義符 ('u001B')
          cx T對應于x的控制字符 x

          字符
          x 字符 x
          \ 反斜線字符
          n 八進制值的字符0n (0 <= n <= 7)
          nn 八進制值的字符 0nn (0 <= n <= 7)
          mnn 八進制值的字符0mnn 0mnn (0 <= m <= 3, 0 <= n <= 7)
          xhh 十六進制值的字符0xhh
          uhhhh 十六進制值的字符0xhhhh
          t 制表符('u0009')
          n 換行符 ('u000A')
          r 回車符 ('u000D')
          f 換頁符 ('u000C')
          a 響鈴符 ('u0007')
          e 轉義符 ('u001B')
          cx T對應于x的控制字符 x view plaincopy to clipboardprint?
          字符類
          [abc] a, b, or c (簡單類)
          [^abc] 除了a、b或c之外的任意 字符(求反)
          [a-zA-Z] a到z或A到Z ,包含(范圍)
          [a-z-[bc]] a到z,除了b和c : [ad-z](減去)
          [a-z-[m-p]] a到z,除了m到 p: [a-lq-z]
          [a-z-[^def]] d, e, 或 f

          字符類
          [abc] a, b, or c (簡單類)
          [^abc] 除了a、b或c之外的任意 字符(求反)
          [a-zA-Z] a到z或A到Z ,包含(范圍)
          [a-z-[bc]] a到z,除了b和c : [ad-z](減去)
          [a-z-[m-p]] a到z,除了m到 p: [a-lq-z]
          [a-z-[^def]] d, e, 或 f view plaincopy to clipboardprint?
          預定義的字符類
          . 任意字符(也許能與行終止符匹配,也許不能)
          d 數字: [0-9]
          D 非數字: [^0-9]
          s 空格符: [ tnx0Bfr]
          S 非空格符: [^s]
          w 單詞字符: [a-zA-Z_0-9]
          W 非單詞字符: [^w]

          posted on 2012-04-22 15:23 hantai 閱讀(134) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 明光市| 沈阳市| 谢通门县| 宁陕县| 洛川县| 青神县| 安图县| 梁山县| 囊谦县| 浙江省| 乌苏市| 灯塔市| 仪征市| 高邮市| 廉江市| 老河口市| 鄂温| 泽库县| 准格尔旗| 内黄县| 化德县| 即墨市| 讷河市| 霍林郭勒市| 二手房| 铅山县| 辛集市| 大冶市| 高阳县| 随州市| 东山县| 二连浩特市| 乐都县| 昭平县| 盘山县| 萍乡市| 长沙县| 英吉沙县| 尚义县| 南昌市| 嘉兴市|