正規表示式用於字串處理、表單驗證等場合,實用高效,movable type的搜尋功能中也可以使用,以遠高效於簡單邏輯關係的關鍵字快速定位到站點內的某一文章。下面是
drl的兄弟整理了一些常用的表示式,需要用之時查閱一時,強勝於啥都需要時才另外開始想。
匹配中文字元的正規表示式: [/u4e00-/u9fa5]
評注:匹配中文還真是個頭疼的事,有了這個表示式就好辦了
匹配雙位元組字元(包括漢字在內):[^/x00-/xff]
評注:可以用來計算字串的長度(乙個雙位元組字元長度計2,ascii字元計1)
匹配空白行的正規表示式:/n/s*/r
評注:可以用來刪除空白行
匹配html標記的正規表示式:<(/s*?)[^>]*>.*?|<.*? />
評注:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對於複雜的巢狀標記依舊無能為力
匹配首尾空白字元的正規表示式:^/s*|/s*$
評注:可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表示式
匹配email位址的正規表示式:^/w+((-/w+)|(/./w+))*/@[a-za-z0-9]+((/.|-)[a-za-z0-9]+)*/.[a-za-z0-9]+$
*評注:表單驗證時很實用
匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-za-z][a-za-z0-9_]$
評注:表單驗證時很實用
匹配國內**號碼:/d-/d|/d-/d
評注:匹配形式如 0511-4405222 或 021-87888822
匹配身份證:/d|/d
評注:中國的身份證為15位或18位
匹配特定數字:
^[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個英文本母或者下劃線組成的字串
評注:最基本也是最常用的一些表示式
在perl:
從iso 8859-1到utf-8: s/([/x80-/xff])/chr(0xc0|ord($1)>>6).chr(0x80|ord($1)&0x3f)/eg;
從utf-8到iso 8859-1: s/([/xc2/xc3])([/x80-/xbf])/chr(ord($1)<<6&0xc0|ord($2)&0x3f)/eg;
用正規表示式限制只能輸入中文:
οnkeyup="value=value.replace(/[^/u4e00-/u9fa5]/g,'')" onbeforepaste="clipboarddata.setdata('text',clipboarddata.getdata('text').replace(/[^/u4e00-/u9fa5]/g,''))"
用正規表示式限制只能輸入全形字符:
οnkeyup="value=value.replace(/[^/uff00-/uffff]/g,'')" onbeforepaste="clipboarddata.setdata('text',clipboarddata.getdata('text').replace(/[^/uff00-/uffff]/g,''))"
用正規表示式限制只能輸入數字:οnkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboarddata.setdata('text',clipboarddata.getdata('text').replace(/[^/d]/g,''))"
用正規表示式限制只能輸入數字和英文:
οnkeyup="value=value.replace(/[/w]/g,'') "onbeforepaste="clipboarddata.setdata('text',clipboarddata.getdata('text').replace(/[^/d]/g,''))"
**號碼
*日期
*數字,得分
二、驗證類
1、數字驗證類
1.1 整數
/^(-│+)?d+$/ 不可以為空
/^[-+]?d*$/ 可以為空
1.2 大於0的整數 (用於傳來的id的驗證)
/^d+$/
1.3 負整數的驗證
/^-d+$/
1.4 整數不能大於imax
根據上面的正則可以寫出。
1.5 整數不能小於imin
根據上面的正則可以寫出。
2、時間類
2.1 短時間,形如 (13:04:06)
function istime(str)
if (a[1]>24 ││ a[3]>60 ││ a[4]>60)
return true;
}2.2 短日期,形如 (2003-12-05)
function strdatetime(str)
2.3 長時間,形如 (2003-12-05 13:04:06)
function strdatetime(str)
2.4 只有年和月。形如(2003-05,或者2003-5)
2.5 只有小時和分鐘,形如(12:03)
3、表單類
3.1 所有的表單的值都不能為空
3.2 多行文字框的值不能為空。
3.3 多行文字框的值不能超過**axstrleng
//檢驗文字框中內容是否超長
function checktextarealength(val, max_length)
return true;
}
正規表示式收集
1.驗證使用者名稱和密碼 a za z w 正確格式 a z a z 0 9 組成,並且第乙個字必須為字母6 16位 2.驗證 號碼 d d 正確格式 x x xx 3.驗證身份證號 15位或18位數字 d d 5.只能輸入由數字和26個英文本母組成的字串 a za z0 9 6.整數或者小數 0 ...
正規表示式 收集
匹配中文字元的正規表示式 u4e00 u9fa5 匹配雙位元組字元 包括漢字在內 x00 xff 匹配空白行的正規表示式 n s r 匹配html標記的正規表示式 s 匹配首尾空白字元的正規表示式 s s 匹配email位址的正規表示式 w w w w w w 匹配 url的正規表示式 a za z...
正規表示式 收集
將收集的正規表示式歸納。以後持續跟進。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計2,ascii字元計1 字串中只能輸入漢字 u4e00 ...