<% 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>") %>
几个简单的正则(ASP, 不断更新中...)
最新推荐文章于 2021-03-08 16:54:50 发布