Java正则表达式语法大全

 1 [正则表达式]文本框输入内容控制
  2 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
  3 只能输入数字:"^[0-9]*$"。
  4 只能输入n位的数字:"^\d{n}$"。
  5 只能输入至少n位的数字:"^\d{n,}$"。
  6 只能输入m~n位的数字:。"^\d{m,n}$"
  7 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
  8 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
  9 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
 10 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
 11 只能输入非零的负整数:"^\-[1-9][]0-9"*$。
 12 只能输入长度为3的字符:"^.{3}$"。
 13 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
 14 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
 15 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
 16 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
 17 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
 18 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
 19 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
 20 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
 21 验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
 22 验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
 23 验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
 24 验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。
 25 验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
 26 验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
 27 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
 28 匹配双字节字符(包括汉字在内):[^\x00-\xff]
 29 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
 30 String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
 31 匹配空行的正则表达式:\n[\s| ]*\r
 32 匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>
 33 匹配首尾空格的正则表达式:(^\s*)|(\s*$)
 34 应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
 35 String.prototype.trim = function()
 36 {
 37 return this.replace(/(^\s*)|(\s*$)/g, "");
 38 }
 39 利用正则表达式分解和转换IP地址:
 40 下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:
 41 function IP2V(ip)
 42 {
 43 re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
 44 if(re.test(ip))
 45 {
 46 return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
 47 }
 48 else
 49 {
 50 throw new Error("Not a valid IP address!")
 51 }
 52 }
 53 不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:
 54 var ip="10.100.20.168"
 55 ip=ip.split(".")
 56 alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
 57 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
 58 匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
 59 
 60 利用正则表达式限制网页表单里的文本框输入内容:
 61 用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
 62 用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
 63 用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
 64 用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
 65 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5\w]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5\w]/g,''))" value="允许下划线,数字字母和汉字">
 66 <script language="javascript">
 67 if (document.layers)//触发键盘事件
 68 document.captureEvents(Event.KEYPRESS)
 69 function xz(thsv,nob){
 70 if(nob=="2"){
 71 window.clipboardData.setData("text","")
 72 alert("避免非法字符输入,请勿复制字符");
 73 return false;
 74 }
 75 if (event.keyCode!=8 && event.keyCode!=16 && event.keyCode!=37 && event.keyCode!=38 && event.keyCode!=39 && event.keyCode!=40){
 76 thsvv=thsv.value;//输入的值
 77 thsvs=thsvv.substring(thsvv.length-1);//输入的最后一个字符
 78 //thsvss=thsvv.substring(0,thsvv.length-1);//去掉最后一个错误字符
 79 if (!thsvs.replace(/[^\u4E00-\u9FA5\w]/g,'') || event.keyCode==189){//正则除去符号和下划线 key
 80 thsv.value='请勿输入非法符号 ['+thsvs+']';
 81 alert('请勿输入非法符号 ['+thsvs+']');
 82 thsv.value="";
 83 return false;
 84 }
 85 }
 86 }
 87 </script>
 88 <input onkeyup="xz(this,1)" onPaste="xz(this,2)" value="">允许数字字母和汉字
 89 <script language="javascript">
 90 <!--
 91 function MaxLength(field,maxlimit){
 92 var j = field.value.replace(/[^\x00-\xff]/g,"**").length;
 93 //alert(j);
 94 var tempString=field.value;
 95 var tt="";
 96 if(j > maxlimit){
 97 for(var i=0;i<maxlimit;i++){
 98 if(tt.replace(/[^\x00-\xff]/g,"**").length < maxlimit)
 99 tt = tempString.substr(0,i+1);
100 else
101 break;
102 }
103 if(tt.replace(/[^\x00-\xff]/g,"**").length > maxlimit)
104 tt=tt.substr(0,tt.length-1);
105 field.value = tt;
106 }else{
107 ;
108 }
109 }
110 </script>
111 单行文本框控制<br />
112 <INPUT type="text" id="Text1" name="Text1" onpropertychange="MaxLength(this, 5)"><br />
113 多行文本框控制:<br />
114 <TEXTAREA rows="14"
115 cols="39" id="Textarea1" name="Textarea1" onpropertychange="MaxLength(this, 15)"></TEXTAREA><br />
116 控制表单内容只能输入数字,中文....
117 <script>
118 function test()  
119 {
120 if(document.a.b.value.length>50)
121 {
122 alert("不能超过50个字符!");
123 document.a.b.focus();
124 return false;
125 }
126 }
127 </script>
128 <form name=a onsubmit="return test()">
129 <textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
130 <input type="submit" name="Submit" value="check">
131 </form>
132 只能是汉字
133 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">
134 只能是英文字符
135 <script language=javascript>
136 function onlyEng()
137 {
138 if(!(event.keyCode>=65&&event.keyCode<=90))
139     event.returnValue=false;
140 }
141 </script>
142 <input onkeydown="onlyEng();">
143 <input name="coname" type="text" size="50" maxlength="35" class="input2" onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
144 只能是数字
145 <script language=javascript>
146 function onlyNum()
147 {
148 if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
149 //考虑小键盘上的数字键
150     event.returnValue=false;
151 }
152 </script>
153 <input onkeydown="onlyNum();">
154 只能是英文字符和数字
155 <input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
156 验证为email格式
157 <SCRIPT LANGUAGE=Javascript RUNAT=Server>
158 function isEmail(strEmail) {
159 if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
160 return true;
161 else
162 alert("oh");
163 }
164 </SCRIPT>
165 <input type=text onblur=isEmail(this.value)>
166 屏蔽关键字(sex , fuck) - 已修改
167 <script language="JavaScript1.2">
168 function test() {
169 if((a.b.value.indexOf ("sex") == 0)||(a.b.value.indexOf ("fuck") == 0)){
170     alert("五讲四美三热爱");
171     a.b.focus();
172     return false;}
173 }
174 </script>
175 <form name=a onsubmit="return test()">
176 <input type=text name=b>
177 <input type="submit" name="Submit" value="check">
178 </form>
179 
180 限制文本框里只能输入数字
181 <input onkeyup="if(event.keyCode !=37 && event.keyCode != 39) value=value.replace(/\D/g,'');"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/\D/g,''))"> 
182 <PIXTEL_MMI_EBOOK_2005>2                                                           </PIXTEL_MMI_EBOOK_2005>
183 
184 JAVA正则表达式语法(转)
185 正则表达式语法
186 
187 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。
188 
189 正则表达式示例
190 
191 表达式 匹配 
192 /^\s*$/
193 匹配空行。
194 
195 /\d{2}-\d{5}/
196 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
197 
198 /<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/
199 匹配 HTML 标记。
200 
201 下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:
202 
203 
204 字符 说明 
205 \
206 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(”。
207 
208 ^
209 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配。
210 
211 $
212 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与“\n”或“\r”之前的位置匹配。
213 
214 *
215 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}。
216 
217 +
218 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,}。
219 
220 ?
221 零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信