1. 程式人生 > >asp中用正則表示式過濾字元,避免注入攻擊

asp中用正則表示式過濾字元,避免注入攻擊

Pattern 屬性的用法: Function RegExpTest(patrn, strng)
Dim regEx ' 建立變數。
Set regEx = New RegExp ' 建立正則表示式。
regEx.Pattern = patrn ' 設定模式。
regEx.IgnoreCase = True ' 設定是否區分大小寫。
RegExpTest = regEx.Execute(strng) ' 執行搜尋。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))



  RegExp物件的方法

  ◎ Execute方法

  Execute方法對指定的字串執行正則表示式搜尋。
  語法
object.Execute(string)
  語法部分描述
object 必需的。總是一個 RegExp 物件的名稱。
string 必需的。要在其上執行正則表示式的文字字串。

  說明
  正則表示式搜尋的設計模式是通過 RegExp 物件的 Pattern 來設定的。
  Execute 方法返回一個 Matches 集合,其中包含了在 string 中找到的每一個匹配的 Match 物件。如果未找到匹配,Execute 將返回空的 Matches 集合。

  Execute 方法的用法:

Function RegExpTest(patrn, strng)
Dim regEx ' 建立變數。
Set regEx = New RegExp ' 建立正則表示式。
regEx.Pattern = patrn ' 設定模式。
regEx.IgnoreCase = False ' 設定區分大小寫。
regEx.Global = True ' 搜尋全部匹配。
RegExpTest = regEx.Execute(strng) ' 執行搜尋。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))
  ◎ Replace方法

  Replace方法替換在正則表示式查詢中找到的文字。
  語法
object.Replace(string1, string2)
  語法部分描述
object 必需的。總是一個 RegExp 物件的名稱。
string1 必需的。string1 是將要進行文字替換的字串。
string2 必需的。 string2 是替換文字字串。

  說明
  被替換的文字的實際模式是通過 RegExp 物件的 Pattern 屬性設定的。
  Replace 方法返回 string1 的副本,其中的 RegExp.Pattern 文字已經被替換為 string2。如果沒有找到匹配的文字,將返回原來的 string1 的副本。

  eplace 方法的用法:
Function ReplaceTest(patrn, replStr)
Dim regEx, str1 ' 建立變數。
str1 = "The quick brown fox jumped over the lazy dog."
Set regEx = New RegExp ' 建立正則表示式。
regEx.Pattern = patrn ' 設定模式。
regEx.IgnoreCase = True ' 設定是否區分大小寫。
ReplaceTest = regEx.Replace(str1, replStr) ' 作替換。
End Function

MsgBox(ReplaceTest("fox", "cat"))
' 將 'fox' 替換為 'cat'。
;另外,Replace 方法在模式中替換 subexpressions 。 下面對以前示例中函式的呼叫,替換了原字串中的所有字對:
MsgBox(ReplaceText("(/S+)(/s+)(/S+)", "$3$2$1")) ' Swap pairs of words.

  ◎ Test方法

  Test方法對指定的字串執行一個正則表示式搜尋,並返回一個 Boolean 值指示是否找到匹配的模式。
  語法
object.Test(string)
  語法部分描述
object 必需的。總是一個 RegExp 物件的名稱。
string 必需的。要執行正則表示式搜尋的文字字串。

說明
  正則表示式搜尋的實際模式是通過RegExp物件的Pattern屬性來設定的。RegExp.Global屬性對Test方法沒有影響。
  如果找到了匹配的模式,Test方法返回True;否則返回False。

  Test 方法的用法:
Function RegExpTest(patrn, strng)
Dim regEx, retVal ' 建立變數。
Set regEx = New RegExp ' 建立正則表示式。
regEx.Pattern = patrn ' 設定模式。
regEx.IgnoreCase = False ' 設定是否區分大小寫。
retVal = regEx.Test(strng) ' 執行搜尋測試。
If retVal Then
RegExpTest = "找到一個或多個匹配。"
Else
RegExpTest = "未找到匹配。"
End If
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))