常用正则表达式

来源:互联网 发布:彩票在线关注源码 编辑:程序博客网 时间:2024/05/16 11:20

匹配中文字符的正则表达式: [/u4e00-/u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^/x00-/xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:/n/s*/r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(/S*?)[^>]*>.*?<//1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^/s*|/s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^/s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:/d{3}-/d{8}|/d{4}-/d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-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个英文字母或者下划线组成的字符串

 

 

 

 

 

字段  表达式 格式示例 说明
名称
 [a-zA-Z'`-′/s]{1,40}
 John DoeO'Dell
 验证名称。最多允许使用 40 个大写字母和小写字母,以及一些在名称中常用的特殊字符。此列表可进行调整。
 
数字
 ^/D?(/d{3})/D?/D?(/d{3})/D?(/d{4})$
 (425)-555-0123
425-555-0123
425 555 0123
 验证美国电话号码。
 
电子邮件
 /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
 
someone@example.com
 验证电子邮件地址。
 
URL
 ^(http|https|ftp)/://[a-zA-Z0-9/-/.]+/.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9/-/._/?/,/'////+&%/$#/=~])*$
  
 验证 URL。
 
邮政编码
 ^(/d{5}-/d{4}|/d{5}|/d{9})$|^([a-zA-Z]/d[a-zA-Z] /d[a-zA-Z]/d)$
  
 验证允许使用 5 个或 9 个数字的美国邮政编码。
 
密码
 ^(?=.*/d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
  
 验证强密码。字符数必须在 8 至 10 的范围内。必须包含大小写字母和数字的组合,不能使用特殊字符。
 
非负整数
 /d+
 0986
 验证大于零的整数。
 
货币(非负数)
 "/d+(/./d/d)?"
  
 验证正货币金额。要求小数点后有两位数字。
 
货币(正数或负数)
 "(-)?/d+(/./d/d)?"
  
 验证正负货币金额。要求小数点后有两位数字。

 
 


222222222222222222222222222222222222222222222222222222222222222222222222222222222

利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))"

用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))"

用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"

用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"

222222222222222222222222222222222222222222222222222222222222222222222222222222222

电话号码

<asp:RegularExpressionValidator id="Regex_Tel" runat="server" ControlToValidate="TEL" ValidationExpression="(/d/d{1,4}-|/(/d/d{1,4}/) ?)?/d{1,4}-/d{4}" ErrorMessage="Tel「XXX-XXX-XXXX」或者「XXX-XXXX-XXXX」" Display="Static">*</asp:RegularExpressionValidator>

日期

<asp:RangeValidator ID="Regx_DateE" Type="Date" MinimumValue="1960/01/01" MaximumValue="2050/01/01" ControlToValidate="DateE" Display="Static" Runat="server" ErrorMessage="请输入日期">*</asp:RangeValidator>

数字,得分

<asp:RegularExpressionValidator Runat="server" ControlToValidate="P" ErrorMessage="数値" Display="Dynamic" ValidationExpression="^[1-9]/d*" ID="PInt" />

222222222222222222222222222222222222222222222222222222222222222222222222222222222
 身份证正则 ^/d{15}$|^/d{17}(?:/d|x|X)$

原创粉丝点击