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 値の範囲を指定できるとは知りませんでした。これは、単一引用符 (') を除いて、スペースと ~ の間のすべてをカバーします。

于 2012-07-12T20:14:18.903 に答える