常用正則表達式

匹配一個輸入或一行的開頭,/^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
驗證是否含有^%&’,;=?$”等字符:“[^%&',;=?$x22]+”
匹配中文字符的正則表達式: [u4e00-u9fa5]
\x3130-\x318F (韓文)
\xAC00-\xD7A3 (韓文)
\u0800-\u4e00 (日文)

匹配雙字節字符(包括漢字在內):[^x00-xff]
匹配空白行的正則表達式: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,}
匹配中國郵政編碼:[1-9]d{5}(?!d)
匹配身份證:d{15}|d{18} 中國的身份證爲15位或18位
匹配ip地址:d+.d+.d+.d+
驗證一年的12個月:^(0?[1-9]|1[0-2])$ 正確格式爲:01-09和112
驗證一個月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正確格式爲:0109和131

匹配特定數字:
 ^[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個英文字母或者下劃線組成的字符串
 
在使用RegularExpressionValidator驗證控件時的驗證功能及其驗證表達式介紹如下:
 只能輸入數字:“^[0-9]*$”
 只能輸入n位的數字:“^d{n}$”
 只能輸入至少n位數字:“^d{n,}$”
 只能輸入m-n位的數字:“^d{m,n}$”
 只能輸入零和非零開頭的數字:“^(0|[1-9][0-9]*)$”
 只能輸入有兩位小數的正實數:“^[0-9]+(.[0-9]{2})?$”
 只能輸入有1-3位小數的正實數:“^[0-9]+(.[0-9]{1,3})?$”
 只能輸入非零的正整數:“^+?[1-9][0-9]*$”
 只能輸入非零的負整數:“^-[1-9][0-9]*$”
 只能輸入長度爲3的字符:“^.{3}$”
 只能輸入由26個英文字母組成的字符串:“^[A-Za-z]+$”
 只能輸入由26個大寫英文字母組成的字符串:“^[A-Z]+$”
 只能輸入由26個小寫英文字母組成的字符串:“^[a-z]+$”
 只能輸入由數字和26個英文字母組成的字符串:“^[A-Za-z0-9]+$”
 只能輸入由數字、26個英文字母或者下劃線組成的字符串:“^w+$”
 驗證用戶密碼:“^[a-zA-Z]w{5,17}$”正確格式爲:以字母開頭,長度在6-18之間,
 只能包含字符、數字和下劃線。
 驗證是否含有^%&”,;=?$”等字符:“[^%&'',;=?$x22]+”
 只能輸入漢字:“^[u4e00-u9fa5],{0,}$”
 驗證Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
 驗證InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
 驗證電話號碼:“^((d{3,4})|d{3,4}-)?d{7,8}$”
 正確格式爲:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,
 “XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
 驗證身份證號(15位或18位數字):“^d{15}|d{}18$”
 驗證一年的12個月:“^(0?[1-9]|1[0-2])$”正確格式爲:“01”-“09”和“1”“12”
 驗證一個月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
 正確格式爲:“01”“09”和“1”“31”。
 匹配中文字符的正則表達式: [u4e00-u9fa5]
 匹配雙字節字符(包括漢字在內):[^x00-xff]
 匹配空行的正則表達式:n[s| ]*r
 匹配HTML標記的正則表達式:/<(.*)>.*|<(.*) />/
 匹配首尾空格的正則表達式:(^s*)|(s*$)
 匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
 匹配網址URL的正則表達式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
 
(1)應用:計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)
 String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}
 
(2)應用:javascript中沒有像vbscript那樣的trim函數,我們就可以利用這個表達式來實現
 String.prototype.trim = function()
 {
 return this.replace(/(^s*)|(s*$)/g, “”);
 }
 
(3)應用:利用正則表達式分解和轉換IP地址
 function IP2V(ip) //IP地址轉換成對應數值
 {
  re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正則表達式
  if(re.test(ip))
  {
   return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
  }
  else
  {
   throw new Error(“Not a valid IP address!”)
  }
 }
  
(4)應用:從URL地址中提取文件名的javascript程序
  s=”http://www.xwuxin.com/page1.htm”;
  s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ;//Page1.htm

  
(5)應用:利用正則表達式限制網頁表單裏的文本框輸入內容
  用正則表達式限制只能輸入中文:onkeyup=”value=value.replace(/[^u4E00-u9FA5]/g,”) “onbeforepaste=”clipboardData.setData(”text”,clipboardData.getData(”text”).replace(/[^u4E00-u9FA5]/g,”))”
  用正則表達式限制只能輸入全角字符: onkeyup=”value=value.replace(/[^uFF00-uFFFF]/g,”) “onbeforepaste=”clipboardData.setData(”text”,clipboardData.getData(”text”).replace(/[^uFF00-uFFFF]/g,”))”
  用正則表達式限制只能輸入數字:onkeyup=”value=value.replace(/[^d]/g,”) “onbeforepaste= “clipboardData.setData(”text”,clipboardData.getData(”text”).replace(/[^d]/g,”))”
  用正則表達式限制只能輸入數字和英文:onkeyup=”value=value.replace(/[W]/g,”) “onbeforepaste=”clipboardData.setData(”text”,clipboardData.getData(”text”).replace(/[^d]/g,”

超強悍的URL網址驗證正則表達式,幾乎可以匹配目前所有的常見網址協議,可以擴充更多以支持其他下載協議等:
程序代碼
^((https|http|ftp|rtsp|mms)?://)?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+\.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-z]\.[a-zA-Z]{2,6})(:[0-9]{1,4})?((/?)|(/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+/?)$

超強悍的IP地址驗證正則表達式:
程序代碼
^(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])$

支持n級域名判斷的正則表達式:
程序代碼
^(([^-][a-z0-9A-Z-_]+\.)*)[^-][a-z0-9A-Z-_]+(\.[a-zA-Z]{2,4}){1,2}$

二級域名正則表達式 分析+分割 URL的正則表達式:
程序代碼
(\w+:\/\/)?([^\.]+)(\.[^/:]+)(:\d*)?([^# ]*)

更強悍的固定電話號碼正則表達式:
(^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)
===============================================================================
靚號檢測:主要可以檢測連號(正連 12345、倒連65432)、AABB號、手機號碼、日期號(生日號、年度號)、ABBCABB號,3位以上重複號。更多類型號碼檢測可以根據以下表達式改造。

匹配6位順增
  regex.Pattern = “(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\d”

匹配6位順降
  regex.Pattern = “(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\d”

匹配6位順增或順降
  regex.Pattern = “(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5})\d”

匹配4-9位連續的數字
  (?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3,}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){3,})\d

匹配3位以上的重複數字
 ([\d])\1{2,}

匹配日期類型的數字
 (19|20)[\d]{2}(1[0-2]|0?[1-9])(31|2[0-9]|1[0-9]|0?[0-9])

手機號碼類
 (13[0-9]|15[0-9]|18[0-9])([\d]{2,4}){2}

匹配33111類型的
 ([\d])\1{1,}([\d])\2{2,}

匹配5331533類型的
 (([\d]){1,}([\d]){1,})\1{1,}

匹配22334,123355類型的
 ([\d])\1{1,}([\d])\2{1,}



http://www.xwuxin.com/?p=365

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章