﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-ccbabc-随笔分类-正则表达式</title><link>http://www.blogjava.net/ccbabc/category/52060.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 29 Jun 2012 10:12:46 GMT</lastBuildDate><pubDate>Fri, 29 Jun 2012 10:12:46 GMT</pubDate><ttl>60</ttl><item><title>正则表达式验证</title><link>http://www.blogjava.net/ccbabc/archive/2012/06/29/381792.html</link><dc:creator>韩进</dc:creator><author>韩进</author><pubDate>Fri, 29 Jun 2012 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/ccbabc/archive/2012/06/29/381792.html</guid><wfw:comment>http://www.blogjava.net/ccbabc/comments/381792.html</wfw:comment><comments>http://www.blogjava.net/ccbabc/archive/2012/06/29/381792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ccbabc/comments/commentRss/381792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ccbabc/services/trackbacks/381792.html</trackback:ping><description><![CDATA[<h2 class="title">数字验证正则表达式大全</h2>
<div class="entry rich-content"><span class="text-img-holder"><img alt="" src="http://m1.img.libdd.com/farm2/172/5DBF139516741BF9B4353638F7A5C6AC_1_1.GIF" width="1" height="1" /></span> <span></span><span class="text-img-holder"><img alt="" src="http://m1.img.libdd.com/farm2/172/5DBF139516741BF9B4353638F7A5C6AC_1_1.GIF" width="1" height="1" /></span> 
<p>验证数字：^[0-9]*$</p>
<p>验证n位的数字：^\d{n}$</p>
<p>验证至少n位数字：^\d{n,}$</p>
<p>验证m-n位的数字：^\d{m,n}$</p>
<p>验证零和非零开头的数字：^(0|[1-9][0-9]*)$</p>
<p>验证有两位小数的正实数：^[0-9]+(.[0-9]{2})?$</p>
<p>验证有1-3位小数的正实数：^[0-9]+(.[0-9]{1,3})?$</p>
<p>验证非零的正整数：^\+?[1-9][0-9]*$</p>
<p>验证非零的负整数：^\-[1-9][0-9]*$</p>
<p>验证非负整数（正整数 + 0） ^\d+$</p>
<p>验证非正整数（负整数 + 0） ^((-\d+)|(0+))$</p>
<p>验证长度为3的字符：^.{3}$</p>
<p>验证由26个英文字母组成的字符串：^[A-Za-z]+$</p>
<p>验证由26个大写英文字母组成的字符串：^[A-Z]+$</p>
<p>验证由26个小写英文字母组成的字符串：^[a-z]+$</p>
<p>验证由数字和26个英文字母组成的字符串：^[A-Za-z0-9]+$</p>
<p>验证由数字、26个英文字母或者下划线组成的字符串：^\w+$</p>
<p>验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为：以字母开头，长度在6-18之间，只能包含字符、数字和下划线。</p>
<p>验证是否含有 ^%&amp;',;=?$\" 等字符：[^%&amp;',;=?$\x22]+</p>
<p>验证汉字：^[\u4e00-\u9fa5],{0,}$</p>
<p>验证Email地址：^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$</p>
<p>验证InternetURL：^http://([\w-]+\.)+[\w-]+(/[\w-./?%&amp;=]*)?$ ；^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$</p>
<p>验证电话号码：^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$：--正确格式为：XXXX-XXXXXXX，XXXX-XXXXXXXX，XXX-XXXXXXX，XXX-XXXXXXXX，XXXXXXX，XXXXXXXX。</p>
<p>验证身份证号（15位或18位数字）：^\d{15}|\d{}18$</p>
<p>验证一年的12个月：^(0?[1-9]|1[0-2])$ 正确格式为：&#8220;01&#8221;-&#8220;09&#8221;和&#8220;1&#8221;&#8220;12&#8221;</p>
<p>验证一个月的31天：^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为：01、09和1、31。</p>
<p>整数：^-?\d+$</p>
<p>非负浮点数（正浮点数 + 0）：^\d+(\.\d+)?$</p>
<p>正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$</p>
<p>非正浮点数（负浮点数 + 0） ^((-\d+(\.\d+)?)|(0+(\.0+)?))$</p>
<p>负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$</p>
<p>浮点数 ^(-?\d+)(\.\d+)?$</p>
<p>&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;&#215;</p>
<p>以下未经测试，请验证后使用</p>
<p>1.只能输入数字和英文的：</p>
<p>&lt;input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1"&gt;</p>
<p>2.只能输入数字的：</p>
<p>&lt;input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2"&gt;</p>
<p>3.只能输入全角的：</p>
<p>&lt;input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3"&gt;</p>
<p>4.只能输入汉字的：</p>
<p>&lt;input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4"&gt;</p>
<p>5.邮件地址验证：</p>
<p>var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"</p>
<p>var re = new RegExp(regu);</p>
<p>if (s.search(re) != -1) {</p>
<p>return true;</p>
<p>} else {</p>
<p>window.alert ("请输入有效合法的E-mail地址 ！")</p>
<p>return false;</p>
<p>}</p>
<p>6.身份证：</p>
<p>"^\\d{17}(<a href="http://ctc.qzs.qq.com/qzone/qzfl/editor/assets/blank.htm#" target="_blank"><font color="#587991">\\d|x)$</font></a>"</p>
<p>7.17种正则表达式</p>
<p>"^\\d+$" //非负整数（正整数 + 0）</p>
<p>"^[0-9]*[1-9][0-9]*$" //正整数</p>
<p>"^((-\\d+)|(0+))$" //非正整数（负整数 + 0）</p>
<p>"^-[0-9]*[1-9][0-9]*$" //负整数</p>
<p>"^-?\\d+$" //整数</p>
<p>"^\\d+([url=file://.//d+)?$]\\.\\d+)?$[/url]" //非负浮点数（正浮点数 + 0）</p>
<p>"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数</p>
<p>"^((-\\d+([url=file://.//d+)?)%7C(0+(//.0+)?))$]\\.\\d+)?)|(0+(<a href="http://ctc.qzs.qq.com/qzone/qzfl/editor/assets/blank.htm#" target="_blank"><font color="#587991">\\.0+)?))$[/url</font></a>]" //非正浮点数（负浮点数 + 0）</p>
<p>"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数</p>
<p>"^(-?\\d+)([url=file://.//d+)?$]\\.\\d+)?$[/url]" //浮点数</p>
<p>"^[A-Za-z]+$" //由26个英文字母组成的字符串</p>
<p>"^[A-Z]+$" //由26个英文字母的大写组成的字符串</p>
<p>"^[a-z]+$" //由26个英文字母的小写组成的字符串</p>
<p>"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串</p>
<p>"^\\w+$" //由数字、26个英文字母或者下划线组成的字符串</p>
<p>"^[\\w-]+(<a href="http://ctc.qzs.qq.com/qzone/qzfl/editor/assets/blank.htm#" target="_blank"><font color="#587991">\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$</font></a>" //email地址</p>
<p>"^[a-zA-z]+://(<a href="http://ctc.qzs.qq.com/qzone/qzfl/editor/assets/blank.htm#" target="_blank"><font color="#587991">\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$</font></a>" //url</p>
<p>=============================================</p>
<p>1.取消按钮按下时的虚线框</p>
<p>在input里添加属性值 hideFocus 或者 HideFocus=true</p>
<p>2.只读文本框内容</p>
<p>在input里添加属性值 readonly</p>
<p>3.防止退后清空的TEXT文档(可把style内容做做为类引用)</p>
<p>&lt;INPUT style=behavior:url(#default#savehistory); type=text id=oPersistInput&gt;</p>
<p>4.ENTER键可以让光标移到下一个输入框</p>
<p>&lt;input onkeydown="if(event.keyCode==13)event.keyCode=9" &gt;</p>
<p>5.只能为中文(有闪动)</p>
<p>&lt;input onkeyup="value="/value.replace(/[" -~]/g,&#8217;&#8217;)" onkeydown="if(event.keyCode==13)event.keyCode=9"&gt;</p>
<p>6.只能为数字(有闪动)</p>
<p>&lt;input onkeyup="value="/value.replace(/["^\d]/g,&#8217;&#8217;) "onbeforepaste="clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^\d]/g,&#8217;&#8217;))"&gt;</p>
<p>7.只能为数字(无闪动)</p>
<p>&lt;input ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9" onKeyPress="if ((event.keyCode&lt;48 || event.keyCode&gt;57)) event.returnValue=false"&gt;</p>
<p>8.只能输入英文和数字(有闪动)</p>
<p>&lt;input onkeyup="value="/value.replace(/[\W]/g,"&#8217;&#8217;)" onbeforepaste="clipboardData.setData(&#8217;text&#8217;,clipboardData.getData(&#8217;text&#8217;).replace(/[^\d]/g,&#8217;&#8217;))"&gt;</p>
<p>9.屏蔽输入法</p>
<p>&lt;input type="text" name="url" ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9"&gt;</p>
<p>10. 只能输入 数字，小数点，减号（-） 字符(无闪动)</p>
<p>&lt;input onKeyPress="if (event.keyCode!=46 &amp;&amp; event.keyCode!=45 &amp;&amp; (event.keyCode&lt;48 || event.keyCode&gt;57)) event.returnValue=false"&gt;</p>
<p>11. 只能输入两位小数，三位小数(有闪动)</p>
<p>&lt;input maxlength=9 onkeyup="if(value.match(/^\d{3}$/))value="/value.replace(value,parseInt(value/10))" ;value="/value.replace(/\.\d*\./g,&#8217;."&#8217;)" onKeyPress="if((event.keyCode&lt;48 || event.keyCode&gt;57) &amp;&amp; event.keyCode!=46 &amp;&amp; event.keyCode!=45 || value.match(/^\d{3}$/) || /\.\d{3}$/.test(value)) {event.returnValue=false}" id=text_kfxe name=text_kfxe&gt;</p>
<p>"^\\d+$" //非负整数（正整数 + 0）</p>
<p>"^[0-9]*[1-9][0-9]*$" //正整数</p>
<p>"^((-\\d+)|(0+))$" //非正整数（负整数 + 0）</p>
<p>"^-[0-9]*[1-9][0-9]*$" //负整数</p>
<p>"^-?\\d+$" //整数</p>
<p>"^\\d+([url=file://\\.\\d+)?$]\\.\\d+)?$[/url]" //非负浮点数（正浮点数 + 0）</p>
<p>"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数</p>
<p>"^((-\\d+([url=file://\\.\\d+)?)|(0+(<a href="http://ctc.qzs.qq.com/qzone/qzfl/editor/assets/blank.htm#" target="_blank"><font color="#587991">\\.0+)?))$]\\.\\d+)?)|(0+(\\.0+)?))$[/url</font></a>]" //非正浮点数（负浮点数 + 0）</p>
<p>"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数</p>
<p>"^(-?\\d+)([url=file://\\.\\d+)?$]\\.\\d+)?$[/url]" //浮点数</p>
<p>"^[A-Za-z]+$" //由26个英文字母组成的字符串</p>
<p>"^[A-Z]+$" //由26个英文字母的大写组成的字符串</p>
<p>"^[a-z]+$" //由26个英文字母的小写组成的字符串</p>
<p>"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串</p>
<p>"^\\w+$" //由数字、26个英文字母或者下划线组成的字符串</p>
<p>"^[\\w-]+(<a href="http://ctc.qzs.qq.com/qzone/qzfl/editor/assets/blank.htm#" target="_blank"><font color="#587991">\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$</font></a>" //email地址</p>
<p>"^[a-zA-z]+://(<a href="http://ctc.qzs.qq.com/qzone/qzfl/editor/assets/blank.htm#" target="_blank"><font color="#587991">\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$</font></a>" //url</p>
<p>"^((\d{1,3}(,\d{3})*?)|\d+)(\.\d+)?$ //带逗号的decimal</p>
<p>具体的使用</p>
<p>&lt;SCRIPT language=JavaScript&gt;</p>
<p>var mm=/^\d+$/;</p>
<p>function formCheck()</p>
<p>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp; if(!mm.test(document.f1.PropertyAmount.value))</p>
<p>&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; alert("请输入合法的数字");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; document.f1.PropertyAmount.focus();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; return false;</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp; return true;</p>
<p>&nbsp;&nbsp; }</p>
<p>&lt;/SCRIPT&gt;<br />测试通过验证用例<br />&nbsp;var regu=/^((0?[1-9])|((1|2)[0-9])|30|31)$/;//验证一个月的天数必须在01-31之间/^\d{11,12}$/;//验证11,12位数字<br />&nbsp;var re = new RegExp(regu);<br />&nbsp;var s=$("#shouji").val();<br />&nbsp;&nbsp;//alert(s);<br />&nbsp;if(regu.test(s)) {<br />&nbsp;&nbsp;//alert("电话号码输入正确");<br />&nbsp;&nbsp;$("#_pt").text("");<br />&nbsp;return true;<br />&nbsp;} else {<br />&nbsp;$("#_pt").text("请输入有效合法的电话号码 ！")<br />&nbsp;&nbsp; return false;<br />}<br />蜗牛为梦想而生！！！</p></div><img src ="http://www.blogjava.net/ccbabc/aggbug/381792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ccbabc/" target="_blank">韩进</a> 2012-06-29 11:19 <a href="http://www.blogjava.net/ccbabc/archive/2012/06/29/381792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正则表达式基础语法</title><link>http://www.blogjava.net/ccbabc/archive/2012/06/29/381777.html</link><dc:creator>韩进</dc:creator><author>韩进</author><pubDate>Fri, 29 Jun 2012 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/ccbabc/archive/2012/06/29/381777.html</guid><wfw:comment>http://www.blogjava.net/ccbabc/comments/381777.html</wfw:comment><comments>http://www.blogjava.net/ccbabc/archive/2012/06/29/381777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ccbabc/comments/commentRss/381777.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ccbabc/services/trackbacks/381777.html</trackback:ping><description><![CDATA[<p>此文章在于帮助读者在5分钟内，回忆正则表达式，前提是读者需要具有一定的正则表达式基础。对于没有任何正则表达基础的读者，本文可能用处不大，这类读者可以参看文章《<a href="http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html">正则表达式30分钟入门教程</a>》。</p>
<p>基本字符</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="46">
<p align="center">\d</p></td>
<td valign="top" width="312">
<p>数字，digital的简写</p></td></tr>
<tr>
<td valign="top" width="46">
<p align="center">\b</p></td>
<td valign="top" width="312">
<p>单词开头或结尾,如&#8217;\baw*z\b&#8217;，a开头，b结尾</p></td></tr>
<tr>
<td valign="top" width="46">
<p align="center">\s</p></td>
<td valign="top" width="312">
<p>空白，如空格，制表符，回车，换行</p></td></tr>
<tr>
<td valign="top" width="46">
<p align="center">\w</p></td>
<td valign="top" width="312">
<p>字母或数字，还有中文</p></td></tr>
<tr>
<td valign="top" width="46">
<p align="center">^</p></td>
<td valign="top" width="312">
<p>开头</p></td></tr>
<tr>
<td valign="top" width="46">
<p align="center">$</p></td>
<td valign="top" width="312">
<p>结尾</p></td></tr>
<tr>
<td valign="top" width="46">
<p align="center"><strong>.</strong></p></td>
<td valign="top" width="312">
<p>任意单个字符，<strong>除了换行</strong></p></td></tr>
<tr>
<td valign="top" width="46">
<p align="center">[abc]</p></td>
<td valign="top" width="312">
<p>匹配任意在等于a或b或c的字符</p></td></tr>
<tr>
<td valign="top" width="46">
<p align="center">[m-n]</p></td>
<td valign="top" width="312">
<p>范围，m-n之间，也适用于字母</p></td></tr></tbody></table>
<p>数量限定</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="45">
<p align="center">{n}</p></td>
<td valign="top" width="312">
<p>出现n次</p></td></tr>
<tr>
<td valign="top" width="45">
<p align="center">{n,m}</p></td>
<td valign="top" width="312">
<p>出现n到m次</p></td></tr>
<tr>
<td valign="top" width="45">
<p align="center">{n,}</p></td>
<td valign="top" width="312">
<p>出现大于或等于n次</p></td></tr>
<tr>
<td valign="top" width="45">
<p align="center">?</p></td>
<td valign="top" width="312">
<p>出现0次或1次</p></td></tr>
<tr>
<td valign="top" width="45">
<p align="center">*</p></td>
<td valign="top" width="312">
<p>出现0此或多次</p></td></tr>
<tr>
<td valign="top" width="45">
<p align="center">+</p></td>
<td valign="top" width="312">
<p>出现1次或多次</p></td></tr></tbody></table>
<p>反义字符</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="48">
<p align="center">\D</p></td>
<td valign="top" width="312">
<p>匹配任意不是数字的字符</p></td></tr>
<tr>
<td valign="top" width="48">
<p align="center">\B</p></td>
<td valign="top" width="312">
<p>匹配不以某字符开头或结尾</p></td></tr>
<tr>
<td valign="top" width="48">
<p align="center">\S</p></td>
<td valign="top" width="312">
<p>匹配任意不是空白字符</p></td></tr>
<tr>
<td valign="top" width="48">
<p align="center">\W</p></td>
<td valign="top" width="312">
<p>匹配任意不是字母或数组或中文</p></td></tr>
<tr>
<td valign="top" width="48">
<p align="center">[^x]</p></td>
<td valign="top" width="312">
<p>匹配任意不是x的字符</p></td></tr>
<tr>
<td valign="top" width="48">
<p align="center">[^xyz]</p></td>
<td valign="top" width="312">
<p>匹配任意不是x,或y或z的字符</p></td></tr></tbody></table>
<p>P.S.: 与基本字符对应，刚好相反</p>
<p>其他字符</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="48">
<p align="center">\</p></td>
<td valign="top" width="312">
<p>转义字符，上面出现的特殊字符为保留字符，如果需要匹配这些字符，如$,^等，需要用\转义</p></td></tr>
<tr>
<td valign="top" width="48">
<p align="center">()</p></td>
<td valign="top" width="312">
<p>分组，用于关联后面相邻的数量限定，如(ab){2}，表示&#8217;ab&#8217;必须连续出现两次，如果写成ab{2}，那么只是标识&#8217;b&#8217;需要连续出现2次</p></td></tr>
<tr>
<td valign="top" width="48">
<p align="center">|</p></td>
<td valign="top" width="312">
<p>逻辑或，匹配两边中的一个即符合</p></td></tr></tbody></table>
<p>常见正则表达式</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="140">
<p>IP v4</p></td>
<td valign="top" width="425">
<p><strong>^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$</strong></p></td></tr>
<tr>
<td valign="top" width="140">
<p>去除开头空白符号</p></td>
<td valign="top" width="425">
<p>^\s*</p></td></tr>
<tr>
<td valign="top" width="140">
<p>出去结尾空白符号</p></td>
<td valign="top" width="425">
<p>\s*$</p></td></tr>
<tr>
<td valign="top" width="140">
<p>去除两端空白符号</p></td>
<td valign="top" width="425">
<p>(^\s*)|(\s*$)</p></td></tr>
<tr>
<td valign="top" width="140">
<p>日期YYYY-MM-DD</p></td>
<td valign="top" width="425">
<p>\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2]\d)|(3[0-1]))</p></td></tr></tbody></table>
<p>P.S.<em>正则表达式不是万能的，比如上面的日期的判断，还需要判断闰年，大小月等，这些逻辑在正则表达式中不能完成，还需要其他方式判断日期的合法化。</em></p>
<p>参考资料</p>
<ul><li><a href="http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html">正则表达式30分钟入门教程</a></li></ul> <img src ="http://www.blogjava.net/ccbabc/aggbug/381777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ccbabc/" target="_blank">韩进</a> 2012-06-29 10:04 <a href="http://www.blogjava.net/ccbabc/archive/2012/06/29/381777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>