用正则表达式来增强VBScript(ASP)类型判断
2007-11-18 09:58
711 查看
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
通过这个函数可以增强VBscript的“类型”判断能力,当然其间的正则表达式可以应用在任何其他语言中。
相关文章推荐
- 正则表达式判断时间类型
- 关于js正则表达式判断一个字符串是否是正确的有数字和小数点组成的金钱形式和 判读数值类型的正则表达式
- js正则表达式判断一个字符串是否是正确的有数字和小数点组成的金钱形式和 判读数值类型的正则表达式
- 正则表达式判断类型(String)
- js正则表达式判断一个字符串是否是正确的有数字和小数点组成的金钱形式和 判读数值类型的正则表达式
- 正则表达式判断号码靓号类型 连号
- asp.net中利用正则表达式判断一个字符串是否为数字的代码
- 【asp】【vbscript】【javascript】使用正则表达式给链接文本加上链接
- asp正则表达式判断是否是数字
- 判断各种输入值类型的正则表达式
- Java中使用Socket完成简单的远程计算(含粗糙界面和正则表达式判断数字类型)
- 正则表达式判断号码靓号类型
- iOS正则表达式之区分大小写中英文,判断输入框类型
- 正则表达式判断号码靓号类型
- 正则表达式号码靓号类型判断代码
- ASP中用正则表达式判断邮箱格式
- 关于判断用户输入的是不是int类型,这次没有正则表达式
- Swift正则表达式--判断输入类型
- [导入]2006-5-7 ASP VBSCRIPT 正则表达式之 替换 URL 与 EMAIL 地址为热链接 By Stabx
- java正则表达式——判断字符串为哪种类型的数字?