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

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

正则其实也势利,削尖头来把钱揣; (指开始符号^和结尾符号$)
特殊符号认不了,弄个倒杠来引路; (指/. /*等特殊符号)
倒杠后面跟小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;
}
}

需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕“需求响应动态冰蓄冷系统与需求响应策略的优化研究”展开,基于Matlab代码实现,重点探讨了冰蓄冷系统在电力需求响应背景下的动态建模与优化调度策略。研究结合实际电力负荷与电价信号,构建系统能耗模型,利用优化算法对冰蓄冷系统的运行策略进行求解,旨在降低用电成本、平衡电网负荷,并提升能源利用效率。文中还提及该研究为博士论文复现,涉及系统建模、优化算法应用与仿真验证等关键技术环节,配套提供了完整的Matlab代码资源。; 适合人群:具备一定电力系统、能源管理或优化算法基础,从事科研或工程应用的研究生、高校教师及企业研发人员,尤其适合开展需求响应、综合能源系统优化等相关课题研究的人员。; 使用场景及目标:①复现博士论文中的冰蓄冷系统需求响应优化模型;②学习Matlab在能源系统建模与优化中的具体实现方法;③掌握需求响应策略的设计思路与仿真验证流程,服务于科研项目、论文写作或实际工程方案设计。; 阅读建议:建议结合提供的Matlab代码逐模块分析,重点关注系统建模逻辑与优化算法的实现细节,按文档目录顺序系统学习,并尝试调整参数进行仿真对比,以深入理解不同需求响应策略的效果差异。
综合能源系统零碳优化调度研究(Matlab代码实现)内容概要:本文围绕“综合能源系统零碳优化调度研究”,提供了基于Matlab代码实现的完整解决方案,重点探讨了在高比例可再生能源接入背景下,如何通过优化调度实现零碳排放目标。文中涉及多种先进优化算法(如改进遗传算法、粒子群优化、ADMM等)在综合能源系统中的应用,涵盖风光场景生成、储能配置、需求响应、微电网协同调度等多个关键技术环节,并结合具体案例(如压缩空气储能、光热电站、P2G技术等)进行建模与仿真分析,展示了从问题建模、算法设计到结果验证的全流程实现过程。; 适合人群:具备一定电力系统、能源系统或优化理论基础,熟悉Matlab/Simulink编程,从事新能源、智能电网、综合能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展综合能源系统低碳/零碳调度的科研建模与算法开发;②复现高水平期刊(如SCI/EI)论文中的优化模型与仿真结果;③学习如何将智能优化算法(如遗传算法、灰狼优化、ADMM等)应用于实际能源系统调度问题;④掌握Matlab在能源系统仿真与优化中的典型应用方法。; 阅读建议:建议结合文中提供的Matlab代码与网盘资源,边学习理论模型边动手调试程序,重点关注不同优化算法在调度模型中的实现细节与参数设置,同时可扩展应用于自身研究课题中,提升科研效率与模型精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值