几个简单的正则(ASP, 不断更新中...)

<%
 Rem ## 简单正则检测是否含有非法字符
 Rem ## str 待检测的字符串
 Rem ## BadWordList 过滤的字符串, 必须以 | 相隔
 function IsHaveBadWord(str, BadWordList)
  Dim strPattern
  strPattern = BadWordList & "+"
  Dim oRegEx, oMatch
  Set oRegEx = New RegExp
  oRegEx.IgnoreCase = True '不区分大小写
  oRegEx.Global = True
  oRegEx.Pattern = strPattern
  Set oMatch = oRegEx.Execute(str)
  If oMatch.Count Then
   IsHaveBadWord = True
  Else
   IsHaveBadWord = False
  End If
 End function
 
 Rem ## 简单正则替换非法字符, 以一个*代替
 Rem ## str 待检测的字符串
 Rem ## BadWordList 过滤的字符串, 必须以 | 相隔
 function ReplaceBadWord(str, BadWordList)
  Dim strPattern
  strPattern = BadWordList & "+"
  Dim oRegEx, oMatch
  Set oRegEx = New RegExp
  oRegEx.IgnoreCase = True '不区分大小写
  oRegEx.Global = True
  oRegEx.Pattern = strPattern
  ReplaceBadWord = oRegEx.Replace(str, "*")
  Set oRegEx = Nothing
 End function
 
 response.Write("ASP萧月痕xiaoyuehen " & IsHaveBadWord("ASP萧月痕xiaoyuehen", "xiaoyuehen|萧月痕") & "<br>")
 response.Write("ASP萧月痕xiaoyuehen " & ReplaceBadWord("ASP萧月痕xiaoyuehen", "xiaoyuehen|萧月痕") & "<br>")
 
 Rem ## 检测是否为,相隔的数字序列. 可用于表单的多选提交检测
 Rem ## str 待检测的字符串
 function MatchNumList(str)
  Dim strPattern
  strPattern = "^[0-9]{1,}(,[0-9]+){0,}___FCKpd___0quot;
  Dim oRegEx, oMatch
  Set oRegEx = New RegExp
  oRegEx.IgnoreCase = True '不区分大小写
  oRegEx.Global = True
  oRegEx.Pattern = strPattern
  Set oMatch = oRegEx.Execute(str)
  If oMatch.Count Then
   MatchNumList = True
  Else
   MatchNumList = False
  End If
 End function
 response.Write("6,1245,2122,456 " & MatchNumList("6,1245,2122,456") & "<br>")
 response.Write("6,1a45,2122,456 " & MatchNumList("6,1a45,2122,456") & "<br>")
 response.Write(",6,1245,2122,456 " & MatchNumList(",6,1245,2122,456") & "<br>")
 response.Write("6,1245,2122,456, " & MatchNumList("6,1245,2122,456,") & "<br>")
%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值