使用正则表达的几个ASP验证函数
作者:admin 日期:2012-03-03
根据正则表达式写了几个ASP验证或者过滤函数,源码如下:
函数一:过滤不是中文的字符并返回
Function dealChinese(checkStr)
Dim RegExpObj
Dim resultStr
Set RegExpObj=new RegExp
RegExpObj.Global = True
RegExpObj.Pattern="[^\u4e00-\u9fa5]"
resultStr = RegExpObj.replace(checkStr,"") '将非中文字符删除
Set RegExpObj=nothing
dealChinese=resultStr
End Function
函数二:验证是否为Email
Function isEmail(email)
Dim m,n
Dim result
result=true
'方法一(较为简单)
' n=Instr(email,"@")
' m=InstrRev(email,".")
' if n<2 or m=0 or m=Len(email) or m<=n+1 then result=false
'方法二(相对严格)
Dim RegExpObj
Set RegExpObj=new RegExp
RegExpObj.Pattern="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
result=RegExpObj.test(email)
Set RegExpObj=nothing
'------
isEmail=result
End Function
函数三:过滤用户名中的非法字符
Function dealUserName(userName)
Dim RegExpObj
Dim resultStr
Set RegExpObj=new RegExp
RegExpObj.Global = True
RegExpObj.Pattern="[^a-zA-Z0-9_]" '只允许字母、数字和下划线
resultStr = RegExpObj.replace(userName,"")
Set RegExpObj=nothing
dealUserName=resultStr
End Function
函数四:检查帖子内容
Function dealContent(checkStr_)
Dim RegExpObj
Dim resultStr,checkStr
'剔除多余空格(复制代码时注意,下面的Replace的第二个参数是两个连续空格,在发表文章的时候被替换为一个了)
checkStr=checkStr_
do while Instr(checkStr," ")
checkStr=Replace(checkStr," "," ") '将两个连续的空格替换为一个空格
loop
checkStr = Trim(checkStr)
'过滤非法字符,允许字符有:中文、数字、字母以及部分标点符号
Set RegExpObj=new RegExp
RegExpObj.Global = True
RegExpObj.Pattern = "[^\u4e00-\u9fa5|a-zA-Z0-9|,。?+-×÷!:;、()“”《》 ,!:;\(\)@=\_\^\#\+\-\*\/\.\?]"
resultStr = RegExpObj.replace(checkStr, "")
Set RegExpObj=nothing
dealContent=resultStr
End Function
其实,函数1、3、4的道理是一样的,即将不被允许的字符删除。这对于确定发表内容字符范围的情况是非常适合的。当然,对于允许范围很大,限制字符相对较少的可以采用相反的方法,如对函数四进行改造如下:
函数五:检查帖子内容二
Function dealContent(checkStr_)
Dim RegExpObj
Dim resultStr,checkStr
'剔除多余空格(复制代码时注意,下面的Replace的第二个参数是两个连续空格,在发表文章的时候被替换为一个了)
checkStr=checkStr_
do while Instr(checkStr," ")
checkStr=Replace(checkStr," "," ") '将两个连续的空格替换为一个空格
loop
checkStr = Trim(checkStr)
'过滤非法字符,不允许字符有:<>'&/\
Set RegExpObj=new RegExp
RegExpObj.Global = True
RegExpObj.Pattern = "[<>\'&\/\\]"
resultStr = RegExpObj.replace(checkStr, "")
Set RegExpObj=nothing
dealContent=resultStr
End Function
下一篇: asp正则验证数字、字符、邮箱、电话号等格式
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: asp 正则表达式
相关日志:
广告位