整數或者小數:^[0-9]+.{0,1}[0-9]{0,2}$
隻能輸入數字:"^[0-9]*$"。
隻能輸入n位的數字:"^d{n}$"。
隻能輸入至少n位的數字:"^d{n,}$"。
隻能輸入m~n位的數字:。"^d{m,n}$"
隻能輸入零和非零開頭的數字:"^(0|1-9*)$"
隻能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"
隻能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"
隻能輸入非零的正整數:"^+?1-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之間,隻能包含字元、數字和下劃線
隻能輸入漢字:"^[u4e00-u9fa5]{0,}$"
驗證email位址:"^w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*$"
驗證電話号碼:"^((d{3,4}-)|d{3.4}-)?d{7,8}$"正确格式為:"xxx-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]
應用:計算字元串的長度(一個雙位元組字元長度計2,ascii字元計1)
比對空行的正規表達式:n[s| ]*r
比對html标簽的正規表達式:<(.)>(.)(.)>|<(.)/>
比對首尾空格的正規表達式:(^s)|(s$)
應用:javascript中沒有像vbscript那樣的trim函數,我們就可以利用這個表達式來實作,如下:
利用正規表達式分解和轉換ip位址:
下面是利用正規表達式比對ip位址,并将ip位址轉換成對應數值的javascript程式:
不過上面的程式如果不用正規表達式,而直接用split函數來分解可能更簡單,程式如下:
比對email位址的正規表達式:w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*
利用正規表達式限制網頁表單裡的文本框輸入内容:
用正規表達式限制隻能輸入中文:
用正規表達式限制隻能輸入全角字元:
用正規表達式限制隻能輸入數字:
用正規表達式限制隻能輸入數字和英文:
評注:可以用來計算字元串的長度(一個雙位元組字元長度計2,ascii字元計1)
比對空白行的正規表達式:ns*r
評注:可以用來删除空白行
評注:網上流傳的版本太糟糕,上面這個也僅僅能比對部分,對于複雜的嵌套标記依舊無能為力
比對首尾空白字元的正規表達式:^s|s$
評注:可以用來删除行首行尾的空白字元(包括空格、制表符、換頁符等等),非常有用的表達式
評注:表單驗證時很實用
評注:網上流傳的版本功能很有限,上面這個基本可以滿足需求
比對帳号是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^a-za-z{4,15}$
比對國内電話号碼:d{3}-d{8}|d{4}-d{7}
評注:比對形式如 0511-4405222 或 021-87888822
比對騰訊qq号:1-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個英文字母或者下劃線組成的字元串
評注:最基本也是最常用的一些表達式
整理出來的一些常用的正規表達式所屬分類
email : /^w+([-+.]w+)@w+([-.]\w+).w+([-.]w+)*$/
isemail1 : /^w+([.-]w+)@w+([.-]w+).w+$/;
phone : /^(((d{3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}$/
mobile : /^(((d{3}))|(d{3}-))?13d{9}$/
idcard : /^d{15}(d{2}[a-za-z0-9])?$/
currency : /^d+(.d+)?$/
number : /^d+$/
code : /^[1-9]d{5}$/
qq : /^[1-9]d{4,8}$/
integer : /^[-+]?d+$/
double : /^[-+]?d+(.d+)?$/
english : /^[a-za-z]+$/
chinese : /^[u0391-uffe5]+$/
unsafe : /^(([a-z]|[a-z]|d*|[-_~!@#&dollar;%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|s/
password :^[\w]{6,12}$
zipcode : ^[\d]{6}
/^(+d+ )?((d+) )?[d ]+$/; //這個是國際通用的電話号碼判斷
/^(1[0-2]d|d{1,2})$/; //這個是年齡的判斷
/^d+.d{2}$/; //這個是判斷輸入的是否為貨币值
ip位址有效性驗證函數
比對html标記的正規表達式:/<(.)>.1>|<(.*) />/
^d+$ //比對非負整數(正整數 + 0)
^[0-9]1-9$ //比對正整數
^((-d+)|(0+))$ //比對非正整數(負整數 + 0)
^-[0-9]1-9$ //比對負整數
^-?d+$ //比對整數
^d+(.d+)?$ //比對非負浮點數(正浮點數 + 0)
^(([0-9]+.[0-9]1-9)|([0-9]1-9.[0-9]+)|([0-9]1-9))$ //比對正浮點數
^((-d+(.d+)?)|(0+(.0+)?))$ //比對非正浮點數(負浮點數 + 0)
^(-(([0-9]+.[0-9]1-9)|([0-9]1-9.[0-9]+)|([0-9]1-9)))$ //比對負浮點數
^(-?d+)(.d+)?$