0

我有一个将一些字符串插入数据库的 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
4

2 回答 2

2

为什么字符串必须是 SQL 安全的?使用参数并完成它。对您的应用程序进行防黑客攻击

于 2012-07-10T19:30:02.847 回答
2

到目前为止,这在我的测试中似乎很有效:

objRegExp.Pattern = "[^\x20-\x26,^\x28-\x7E]" '空格通过&,跳过',然后(通过~

我不知道您可以指定一系列 ascii 值。这涵盖了 Space 和 ~ 之间的所有内容,不包括单引号 (')。

于 2012-07-12T20:14:18.903 回答