平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用
**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,''))"
~~~