正则表达式常用验证及打油诗一首

本文详细介绍了正则表达式的各种符号及其应用场景,并提供了多种常见需求的正则表达式实例,如验证电子邮件、网址、电话号码等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则其实也势利,削尖头来把钱揣; (指开始符号^和结尾符号$)
特殊符号认不了,弄个倒杠来引路; (指/. /*等特殊符号)
倒杠后面跟小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:看完了口诀,里边总计的内容很多。但关于命名组的示例是错的,还有环视的描述是不准确的,环视不占有字符,是进行位置的匹配,在某个点进行前窥后探。

 

正则表达式验证代码(字母、数字、Email、网址、电话号码、汉字、身份证号码)

<% 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

%>

服务器端验证Email是否正确

<%
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
%>

客户端验证Email是否正确

<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;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值