用正则表达式来增强VBScript(ASP)类型判断
来源:互联网 发布:scada数据采集系统 编辑:程序博客网 时间:2024/06/02 17:14
Dim dicParamType
Set dicParamType = Server.CreateObject("Scripting.Dictionary")
dicParamType.Add "Account","^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,24}$"
dicParamType.Add "Password","^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,24}$"
dicParamType.Add "Email","w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"
dicParamType.Add "Phone","^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$"
dicParamType.Add "Mobil","^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$"
dicParamType.Add "Postal","^[a-zA-Z0-9 ]{3,12}$"
dicParamType.Add "IP","^[0-9.]{1,20}$"
dicParamType.Add "Url","^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"
dicParamType.Add "RelUrl","^/*[^/:*?<>|]+/*$"
dicParamType.Add "FileName","^[^/:*?<>|]+$"
dicParamType.Add "FilePath","(^[A-Z]:/[^/:*?<>|]+.w{2,6})"
dicParamType.Add "FolderName","^[^/:*?<>|]+$"
dicParamType.Add "FolderPath","(^[A-Z]:/[^/:*?<>|]+/*$)|(/{2}[^/:*?<>|]+/*$)"
dicParamType.Add "Natural","^d+$"
dicParamType.Add "PstInteger","^[0-9]*[1-9][0-9]*$"
dicParamType.Add "NgtInteger","^-[0-9]*[1-9][0-9]*$"
dicParamType.Add "Integer","^-?d+$"
dicParamType.Add "PstFloat","^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$"
dicParamType.Add "NgtFloat","^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$"
dicParamType.Add "Float","^(-?d+)(.d+)?$"
dicParamType.Add "IsChinese","^[一-龥]+$"
dicParamType.Add "HasChinese","[一-龥]+"
dicParamType.Add "IsDateTime","^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?d):[0-5]?d:[0-5]?d$"
dicParamType.Add "IsDate","^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"
dicParamType.Add "IsTime","^(20|21|22|23|[0-1]?d):[0-5]?d:[0-5]?d$"
Function IsType(vnt,vntType)
IsType = False
If Typename(vntType)="Integer" Then
If vntType < dicParamType.Count And vntType>=0 Then IsType=regTest(vnt,dicParamType.items()(vntType))
Else
If dicParamType.Exists(vntType) Then IsType=regTest(vnt,dicParamType(vntType))
End If
End Function
Function IsObjType(obj,strType)
IsObjType = False
If IsObject(obj) Then
If strType="object" Then
IsObjType = True
ElseIf TypeName(obj)=strType Then
IsObjType = True
End If
End If
End Function
Function regTest(ByVal strTest,ByVal strPattern)
Dim objReg
Set objReg = New RegExp
If IsEmpty(strPattern) Or IsNull(strPattern) Or IsEmpty(strTest) Or IsNull(strTest) Then
regTest=False
Exit Function
End If
objReg.Pattern=strPattern
objReg.IgnoreCase = True
objReg.Global = True
regTest = objReg.Test(strTest)
Set objReg = Nothing
End Function
Set dicParamType = Server.CreateObject("Scripting.Dictionary")
dicParamType.Add "Account","^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,24}$"
dicParamType.Add "Password","^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,24}$"
dicParamType.Add "Email","w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"
dicParamType.Add "Phone","^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$"
dicParamType.Add "Mobil","^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$"
dicParamType.Add "Postal","^[a-zA-Z0-9 ]{3,12}$"
dicParamType.Add "IP","^[0-9.]{1,20}$"
dicParamType.Add "Url","^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"
dicParamType.Add "RelUrl","^/*[^/:*?<>|]+/*$"
dicParamType.Add "FileName","^[^/:*?<>|]+$"
dicParamType.Add "FilePath","(^[A-Z]:/[^/:*?<>|]+.w{2,6})"
dicParamType.Add "FolderName","^[^/:*?<>|]+$"
dicParamType.Add "FolderPath","(^[A-Z]:/[^/:*?<>|]+/*$)|(/{2}[^/:*?<>|]+/*$)"
dicParamType.Add "Natural","^d+$"
dicParamType.Add "PstInteger","^[0-9]*[1-9][0-9]*$"
dicParamType.Add "NgtInteger","^-[0-9]*[1-9][0-9]*$"
dicParamType.Add "Integer","^-?d+$"
dicParamType.Add "PstFloat","^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$"
dicParamType.Add "NgtFloat","^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$"
dicParamType.Add "Float","^(-?d+)(.d+)?$"
dicParamType.Add "IsChinese","^[一-龥]+$"
dicParamType.Add "HasChinese","[一-龥]+"
dicParamType.Add "IsDateTime","^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?d):[0-5]?d:[0-5]?d$"
dicParamType.Add "IsDate","^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"
dicParamType.Add "IsTime","^(20|21|22|23|[0-1]?d):[0-5]?d:[0-5]?d$"
Function IsType(vnt,vntType)
IsType = False
If Typename(vntType)="Integer" Then
If vntType < dicParamType.Count And vntType>=0 Then IsType=regTest(vnt,dicParamType.items()(vntType))
Else
If dicParamType.Exists(vntType) Then IsType=regTest(vnt,dicParamType(vntType))
End If
End Function
Function IsObjType(obj,strType)
IsObjType = False
If IsObject(obj) Then
If strType="object" Then
IsObjType = True
ElseIf TypeName(obj)=strType Then
IsObjType = True
End If
End If
End Function
Function regTest(ByVal strTest,ByVal strPattern)
Dim objReg
Set objReg = New RegExp
If IsEmpty(strPattern) Or IsNull(strPattern) Or IsEmpty(strTest) Or IsNull(strTest) Then
regTest=False
Exit Function
End If
objReg.Pattern=strPattern
objReg.IgnoreCase = True
objReg.Global = True
regTest = objReg.Test(strTest)
Set objReg = Nothing
End Function
通过这个函数可以增强VBscript的“类型”判断能力,当然其间的正则表达式可以应用在任何其他语言中。
- 用正则表达式来增强VBScript(ASP)类型判断
- asp (vbscript)中用正则表达式替换字符串
- ASP VBScript正则表达式RegExp对象
- 正则表达式判断时间类型
- 在Delphi用vbscript的正则表达式
- vbscript正则表达式
- 正则表达式-JScript/VBScript
- VBscript中的正则表达式
- VBscript中的正则表达式
- 用正则表达式来判断是否有需要的字符串
- 如何用正则表达式来判断素数?
- JScript 和 VBScript 正则表达式
- VBscript 中使用正则表达式
- 正则表达式判断号码靓号类型
- 正则表达式判断号码靓号类型
- 正则表达式判断号码靓号类型
- Swift正则表达式--判断输入类型
- 常用ASP+VBSCRIPT判断函数
- helix流媒体服务器概况
- 动态加载jar包的方法
- 静思激发创造力
- C#编程中的 New 关键词的几种用法
- 利用ORACLE RMAN 迁移不同平台的oracle数据库
- 用正则表达式来增强VBScript(ASP)类型判断
- 进行网络电视直播的几种方法
- VS2005+Crystal Report开发Web应用一
- VS2005+Crystal Report开发Web应用二
- VS2005+Crystal Report开发Web应用三
- VS2005+Crystal Report开发Web应用四
- 竞争
- VS2005+Crystal Report开发Web应用五
- 程序人生之外国篇 - C++的背景