我有一个将一些字符串插入数据库的vbscript。通常,这些字符串有奇怪的字符,引号,撇号,&符号等。我目前使用以下字符串来替换除了某些字符之外的所有字符,但它正在替换我想要保留的分号和其他一些东西(包括空格)。所以我基本上都在寻找仍然会生成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
答案 0 :(得分:2)
为什么字符串必须是SQL安全的?使用参数并完成它。 Hack-Proofing Your Applications
答案 1 :(得分:2)
到目前为止,我的测试看起来效果很好:
objRegExp.Pattern =“[^ \ x20- \ x26,^ \ x28- \ x7E]”'空格通过&,跳过',然后(通过〜
我不知道你可以指定一系列ascii值。这涵盖了Space和〜之间的所有内容,不包括单引号(')。