平時做網站經常要用正則表達式,下面是一些講解和例子,僅供大家參考和修改使用
**sql 語句**
~~~
^(select|drop|delete|create|update|insert).*$
~~~
**非負整數**
~~~
^\d+$
~~~
**正整數**
~~~
^[0-9]*[1-9][0-9]*$
~~~
**非正整數**
~~~
^((-\d+)|(0+))$
~~~
**負整數**
~~~
^-[0-9]*[1-9][0-9]*$
~~~
**整數**
~~~
^-?\d+$
~~~
**非負浮點數**
~~~
^\d+(\.\d+)?$
~~~
**正浮點數**
~~~
^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
~~~
**非正浮點數**
~~~
^((-\d+\.\d+)?)|(0+(\.0+)?))$
~~~
**負浮點數**
~~~
^(-((正浮點數正則式)))$
~~~
**英文字符串**
~~~
^[A-Za-z]+$
~~~
**英文大寫串**
~~~
^[A-Z]+$
~~~
英文小寫串
~~~
^[a-z]+$
~~~
**英文字符數字串**
~~~
^[A-Za-z0-9]+$
~~~
**英數字加下劃線串**
~~~
^\w+$
~~~
**URL**
~~~
^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$
~~~
或
~~~
^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$
~~~
**郵政編碼**
~~~
^[1-9]\d{5}$
~~~
**電話號碼**
~~~
^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$
~~~
**手機號碼**
~~~
^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
~~~
**提取信息中的網絡鏈接**
~~~
(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
~~~
**提取信息中的郵件地址**
~~~
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
~~~
**提取信息中的圖片鏈接**
~~~
(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
~~~
**提取信息中的 IP 地址**
~~~
(\d+)\.(\d+)\.(\d+)\.(\d+)
~~~
**提取信息中的中國手機號碼**
~~~
(86)*0*13\d{9}
~~~
**提取信息中的中國固定電話號碼**
~~~
(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
~~~
**提取信息中的中國電話號碼(包括移動和固定電話)**
~~~
(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
~~~
**提取信息中的中國郵政編碼**
~~~
[1-9]{1}(\d+){5}
~~~
**提取信息中的浮點數(即小數)**
~~~
(-?\d*)\.?\d+
~~~
**提取信息中的任何數字**
~~~
(-?\d*)(\.\d+)?
~~~
**IP**
~~~
(\d+)\.(\d+)\.(\d+)\.(\d+)
~~~
**電話區號**
~~~
/^0\d{2,3}$/
~~~
**帳號(字母開頭,允許 5-16 字節,允許字母數字下劃線)**
~~~
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
~~~
**中文、英文、數字及下劃線**
~~~
^[\u4e00-\u9fa5_a-zA-Z0-9]+$
~~~
**年-月-日**
~~~
^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$
~~~
**月/日/年**
~~~
^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$
~~~
**Email**
~~~
^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$
~~~
**電話號碼**
~~~
^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$
~~~
**IP 地址**
~~~
^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$
~~~
**匹配中文字符的正則表達式**
~~~
[\x{4e00}-\x{9fa5}]
~~~
**匹配雙字節字符(包括漢字在內)**
~~~
[^\x00-\xff]
~~~
**匹配空行的正則表達式**
~~~
\n[\s| ]*\r
~~~
**匹配 HTML 標記的正則表達式**
~~~
/<(.*)>.*<\/\1>|<(.*) \/>/
~~~
**匹配首尾空格的正則表達式**
~~~
(^\s*)|(\s*$)
~~~
**匹配 Email 地址的正則表達式**
~~~
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
~~~
**匹配網址 URL 的正則表達式**
~~~
^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
~~~
**匹配帳號是否合法(字母開頭,允許 5-16 字節,允許字母數字下劃線)**
~~~
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
~~~
**匹配國內電話號碼**
~~~
(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
~~~
**匹配騰訊 QQ 號**
~~~
^[1-9]*[1-9][0-9]*$
~~~
**利用正則表達式限制網頁表單里的文本框輸入內容**
1.用正則表達式限制只能輸入中文
~~~
onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"
~~~
2.用正則表達式限制只能輸入全角字符
~~~
onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"
~~~
3.用正則表達式限制只能輸入數字
~~~
onkeyup="value=value.replace(/[^d]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
~~~
4.用正則表達式限制只能輸入數字和英文
~~~
onkeyup="value=value.replace(/[W]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
~~~