2012-07-10 57 views
0

我有一個將一些字符串插入數據庫的vbscript。通常,這些字符串有奇怪的字符,引號,撇號,&符號等。我目前使用下面的字符串來替換除了某些字符以外的所有字符,但它取代了分號和其他一些我想要保留的東西(包括空格)。所以我基本上尋找最小限制的正則表達式,它仍然會生成一個sql安全字符串。用於安全SQL插入的正則表達式

爲什麼值得這些字符串是Windows安裝的應用程序(就像您在添加/刪除程序中看到的那樣)。

Function CleanUp (input) 
    Dim objRegExp, outputStr 
    Set objRegExp = New Regexp 

    objRegExp.IgnoreCase = True 
    objRegExp.Global = True 
    objRegExp.Pattern = "((?![a-zA-Z0-9]).)+" 
    outputStr = objRegExp.Replace(input, "-") 

    objRegExp.Pattern = "\-+" 
    outputStr = objRegExp.Replace(outputStr, "-") 

    CleanUp = outputStr 
End Function 

回答

2

這似乎在我的測試工作非常大,所以至今:

objRegExp.Pattern = 「[^ \ x20- \ X26,^ \ x28- \ x7E]」 '通過&空間,跳過' ,然後(通過〜

我不知道,你可以指定一個範圍的ASCII值的。這包括〜太空之間的一切,不包括單引號(')。

+0

週五投入生產,本週末成功導入/更新4500臺設備。我檢查的人都很好看。 – 2012-07-16 16:43:36

2

爲什麼字符串必須是SQL安全的?使用參數並用它來完成。 Hack-Proofing Your Applications

+0

這是解決遺留VB腳本超過2,500行代碼,但感謝您的關注... – 2012-07-11 19:55:30