注册 登录
编程论坛 ASP技术论坛

大家有没有用过这样的字符过滤方式?

towering 发布于 2008-11-26 16:47, 565 次点击
之前都是用
username=replace(request("username"),"'","")
password=replace(Request("password"),"'","")
这样的方式过滤。

今天看到网上有这样方式的过滤:
Str = Replace(Str, "Object", "Object", 1, -1, 0)
Str = Replace(Str, "object", "Object", 1, -1, 1)
Str = Replace(Str, "where", "where", 1, -1, 1)
Str = Replace(Str, "insert", "insert", 1, -1, 1)

看不明白是什么意思,
请高手来解释一下。

谢谢!
3 回复
#2
sunfishy2008-11-26 16:51
//vb手册
//==========================
Replace 函數
傳回一個字串,表示字串中的一個特定子字串已經被另一個子字串取代的次數。

Replace(expression, find, replacewith[, start[, count[, compare]]])

引數
expression

必要項。字串運算式,包含了要被取代的子字串。

find

必要項。要被搜尋的子字串。

replacewith

必要項。用來取代的子字串。

start

選擇項。在 expression 中,子字串搜尋動作的開始位置。如果省略,則預設為 1。必須與 count 一起使用。

count

選擇項。子字串取代的執行次數。如果省略,預設值為 -1,表示將執行所有可能的取代動作。必須與 start 一起使用。

compare

選擇項。指定子字串比較種類的數值。請參考設定部分。如果省略,預設值為 0,將執行二進位資料比對。

設定值
compare 引數的設定值如下:

常數 值 說明
vbBinaryCompare 0 執行二進位資料的比對。
vbTextCompare 1 執行文字資料的比對。


傳回值
Replace 函數有下列傳回值:

如果 Replace 傳回
expression 的長度為零 傳回空字串 ("")。
expression 是 Null 錯誤。
find 的長度為零 一份 expression 的複製。
replacewith 的長度為零 一份 expression 的複製,此內容已移除所有 find 中的項目。
start > Len(expression) 空字串。
count 為零 一份 expression 的複製。


附註
Replace 函數的傳回值是一個字串,而這個字串已進行過取代動作。而取代動作是從 start 所決定的位置開始,在 expression 字串的結尾停止執行。這個字串不是原始字串從頭到尾的複製。

以下的範例使用 Replace 函數以傳回字串:

Dim MyString
MyString = Replace("XXpXXPXXp", "p", "Y")   '在字串開頭開始的二元比較。傳回"XXYXXPXXY"。
MyString = Replace("XXpXXPXXp", "p", "Y",   '在位置 3 開始的文字比較。傳回"YXXYXXY"。3, -1, 1)
#3
yms1232008-11-26 16:54
http://www.
楼主就懒得用百度搜索吗?
#4
towering2008-11-26 16:57
呵呵!

谢谢两位!
1