正規表示式收集

2021-04-15 02:33:18 字數 3481 閱讀 9167

正規表示式用於字串處理、表單驗證等場合,實用高效,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 ...