正则其实也势利,削尖头来把钱揣; (指开始符号^和结尾符号$) 特殊符号认不了,弄个倒杠来引路; (指/. /*等特殊符号) 倒杠后面跟小w, 数字字母来表示; (/w跟数字字母;/d跟数字) 倒杠后面跟小d, 只有数字来表示; 倒杠后面跟小a, 报警符号嘀一声; 倒杠后面跟小b, 单词分界或退格; 倒杠后面跟小t, 制表符号很明了; 倒杠后面跟小r, 回车符号知道了; 倒杠后面跟小s, 空格符号很重要; 小写跟罢跟大写,多得实在不得了; 倒杠后面跟大W, 字母数字靠边站; 倒杠后面跟大S, 空白也就靠边站; 倒杠后面跟大D, 数字从此靠边站; 倒框后面跟大B, 不含开头和结尾; 单个字符要重复,三个符号来帮忙; (* + ?) 0 星加1 到无穷,问号只管0 和1; (*表0-n;+表1-n;?表0-1次重复) 花括号里学问多,重复操作能力强; ({n} {n,} {n,m}) 若要重复字符串,园括把它括起来; ((abc){3} 表示字符串“abc”重复3次 ) 特殊集合自定义,中括号来帮你忙; 转义符号行不通,一个一个来排队; 实在多得排不下,横杠请来帮个忙; ([1-5]) 尖头放进中括号,反义定义威力大; ([^a]指除“a”外的任意字符 ) 1竖作用可不小,两边正则互替换; (键盘上与“/”是同一个键) 1竖能用很多次,复杂定义很方便; 园括号,用途多; 反向引用指定组,数字排符对应它; (“/b(/w+)/b/s+/1/b”中的数字“1”引用前面的“(/w+)”) 支持组名自定义,问号加上尖括号; (“(?<Word>/w+)”中把“/w+”定义为组,组名为“Word”) 园括号,用途多,位置指定全靠它; 问号等号字符串,定位字符串前面; (“/b/w+(?=ing/b)”定位“ing”前面的字符串) 若要定位串后面,中间插个小于号; (“(?<=/bsub)/w+/b”定位“sub”后面的字符串) 问号加个惊叹号,后面跟串字符串; PHPer都知道, !是取反的意思; 后面不跟这一串,统统符合来报到; (“/w*d(?!og)/w*”,“dog”不符合,“do”符合) 问号小于惊叹号,后面跟串字符串; 前面不放这一串,统统符合来报到; 点号星号很贪婪,加个问号不贪婪; 加号问号有保底,至少重复一次多; 两个问号老规矩,0次1次团团转; 花括号后跟个?,贪婪变成不贪婪; 还有很多装不下,等着以后来增加。 一些常用的正则表达式 “^/d+$” //非负整数(正整数 + 0) “^[0-9]*[1-9][0-9]*$” //正整数 “^((-/d+)|(0+))$” //非正整数(负整数 + 0) “^-[0-9]*[1-9][0-9]*$” //负整数 “^-?/d+$” //整数 “^/d+(/./d+)?$” //非负浮点数(正浮点数 + 0) “^(([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+)?))$” //非正浮点数(负浮点数 + 0) “^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$” //负浮点数 “^(-?/d+)(/./d+)?$” //浮点数 “^[A-Za-z]+$” //由26个英文字母组成的字符串 “^[A-Z]+$” //由26个英文字母的大写组成的字符串 “^[a-z]+$” //由26个英文字母的小写组成的字符串 “^[A-Za-z0-9]+$” //由数字和26个英文字母组成的字符串 “^/w+$” //由数字、26个英文字母或者下划线组成的字符串 “^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$” //email地址 “^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$” //url /^(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})$/ // 月/日/年 “^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$” //Emil “(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?” //电话号码 “^(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])$” //IP地址 匹配中文字符的正则表达式: [/u4e00-/u9fa5] 匹配双字节字符(包括汉字在内):[^/x00-/xff] 匹配空行的正则表达式:/n[/s| ]*/r 匹配HTML标记的正则表达式:/<(.*)>.*<///1>|<(.*) //>/ 匹配首尾空格的正则表达式:(^/s*)|(/s*$) 匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* 匹配网址URL的正则表达式:^[a-zA-z]+://(http://www.demi.cn://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]*$ G:看完了口诀,里边总计的内容很多。但关于命名组的示例是错的,还有环视的描述是不准确的,环视不占有字符,是进行位置的匹配,在某个点进行前窥后探。
<% if request("check")<>"" then astr=request("content") call str(astr) end if function str(astr) Ar=Cint(Asc(astr)) if(65<=Ar and Ar<=90) or (97<=Ar and Ar<=122) then response.Write "<script>alert('输入的字符串是英文字母!!');</script>" else response.write "<script>alert('输入的字符串不是英文字母!!');</script>" end if end function
%>
<% Function F_RegExp(Expression, IfStr) Dim RegExp1, Matches Set ObjExp = New RegExp '建立正则表达式 ObjExp.Pattern = Expression '设置模式 ObjExp.IgnoreCase = True '设置是否区分字符大小写 ObjExp.Global = True '设置全局可用性 Matches = ObjExp.Test(IfStr) F_RegExp = Matches End Function function checkemail(str) checkemail=F_RegExp("/w+([-+.']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*",trim(str)) end function %> <% if request.form("e_mail")<>"" then if cbool(checkemail(request.form("e_mail"))) then response.Write("您输入的Email地址正确!") else response.Write("您输入的Email地址错误!") end if else response.Write("您没有输入Email地址!") end if %>
<script language="javascript"> function check(myform){ if(myform.e_mail.value==""){ alert("请输入Email地址!");myform.e_mail.focus();return; } if(!checkemail(myform.e_mail.value)){ alert("您输入Email地址不正确!");myform.e_mail.focus();return; } myform.submit(); } function checkemail(email){ var str=email; //在JavaScript中,正则表达式只能使用"/"开头和结束,不能使用双引号 var Expression=//w+([-+.']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/; var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } </script>
<% Public Function F_RegExp(Expression, IfStr) Dim RegExp1, Matches Set ObjExp = New RegExp '建立正则表达式 ObjExp.Pattern = Expression '设置模式 ObjExp.IgnoreCase = True '设置是否区分字符大小写 ObjExp.Global = True '设置全局可用性 Matches = ObjExp.Test(IfStr) F_RegExp = Matches End Function function checktel(str) checktel=F_RegExp("(/d{3}-)?/d{8}|(/d{4}-)(/d{7})",trim(str)) end function %> <% if request.form("Tel")<>"" then if cbool(checktel(request.form("Tel"))) then response.Write("您输入的电话号码正确!") else response.Write("您输入的电话号码错误!") end if else response.Write("您没有输入联系电话!") end if %>
<script language="javascript"> function check(myform){ if(myform.realname.value==""){ alert("请输入真实姓名!");myform.realname.focus();return; } if(checkrealname(myform.realname.value)){ alert("您输入真实姓名不正确!");myform.realname.focus();return; } myform.submit(); } function checkrealname(realname){ var str=realname; //在JavaScript中,正则表达式只能使用"/"开头和结束,不能使用双引号 var Expression=/[^/u4E00-/u9FA5]/; var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } </script>
<script language="javascript"> function check(myform){ if(myform.number.value==""){ alert("请输入身份证号码地址!");myform.number.focus();return; } if(!checkeNO(myform.number.value)){ alert("您输入身份证号码不正确!");myform.number.focus();return; } myform.submit(); } function checkeNO(NO){ var str=NO; //在JavaScript中,正则表达式只能使用"/"开头和结束,不能使用双引号 var Expression=//d{17}[/d|X]|/d{15}/; var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } </script>
<script language="javascript"> function check(myform){ if(myform.username.value==""){ alert("请输入用户名!");myform.username.focus();return; } if(!checkeusername(myform.username.value)){ alert("您输入的用户名不合法!");myform.username.focus();return; } if(myform.PWD.value==""){ alert("请输入密码!");myform.PWD.focus();return; } if(!checkePWD(myform.PWD.value)){ alert("您输入的密码不合法!");myform.PWD.focus();return; } if(myform.PWD1.value==""){ alert("请确认密码!");myform.PWD1.focus();return; } if(myform.PWD1.value!=myform.PWD.value){ alert("您两次输入的密码不一致,请重新输入!");myform.PWD.focus();return; } myform.submit(); } function checkeusername(username){ var str=username; //在JavaScript中,正则表达式只能使用"/"开头和结束,不能使用双引号 var Expression=/^(/w){3,10}$/; var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } function checkePWD(PWD){ var str=PWD; //在JavaScript中,正则表达式只能使用"/"开头和结束,不能使用双引号 var Expression=/^[A-Za-z]{1}([A-Za-z0-9]|[._]){5,19}$/; var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } </script>
<script language="javascript"> function checkuserinfo(){ var homepage=userinfo.homepage.value; if(homepage==""){ alert("请输入个人主页地址!"); document.userinfo.homepage.focus(); }else{ if(!checkeURL(homepage)){ alert("您输入的个人主页地址不合法!"); document.userinfo.homepage.focus(); return; } } userinfo.submit(); } function checkeURL(URL){ var str=URL; //在JavaScript中,正则表达式只能使用"/"开头和结束,不能使用双引号 //判断URL地址的正则表达式为:http(s)?://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)? //下面的代码中应用了转义字符"/"输出一个字符"/" var Expression=/http(s)?:([/w-]+/.)+[/w-]+(//[/w- .//?%&=]*)?/; var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } </script>
<script language="JavaScript"> function checkPrice(){ if (form1.dj.value==0 && form1.dj.value==""){ alert("请输入单价!");form1.dj.focus();form1.dj.select();return;} if(isNaN(form1.dj.value)){ alert("您输入的单价不是有效值!");form1.dj.focus();form1.dj.select();return; } } function checkNum(){ if (form1.sl.value==0 && form1.sl.value==""){ alert("请输入数量!");form1.sl.focus();form1.sl.select();return;} str=form1.sl.value; len=str.length; for(i=0;i<len;i++){ x=str.substr(i,1); if(x!="1"&x!="2"&x!="3"&x!="4"&x!="5"&x!="6"&x!="7"&x!="8"&x!="9"){ alert("您输入的不是有效值(请输入正整数)!");form1.sl.focus
();form1.sl.select();return; } } } function aotoPay(){ form1.je.value=form1.sl.value*form1.dj.value; if (isNaN(form1.je.value)){ form1.je.value=0; } }