質問

vbscript で文字列が有効な GUID であるかどうかを確認するにはどうすればよいですか?誰かが IsGuid メソッドを書いたことがありますか?

役に立ちましたか?

解決

これは次のようなものです C#でも同じ質問. 。必要な正規表現は次のとおりです...

^[A-Fa-f0-9]{32}$|^({|()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-) {3}[A-Fa-f0-9]{12}(}|))?$|^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[ 0xA-Fa-f0-9]{3,6}){2}、{0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7 }[0xA-Fa-f0-9]{3,4}(}})$

しかし、それは単なる初心者向けです。日付/時刻などのさまざまな部分が許容範囲内であることも確認する必要があります。有効な GUID をテストすることがどれほど複雑かを理解するには、Guid コンストラクターの 1 つのソース コードを見てください。

他のヒント

この関数はクラシック ASP で動作します。

Function isGUID(byval strGUID)
      if isnull(strGUID) then
        isGUID = false
        exit function
      end if
      dim regEx
      set regEx = New RegExp
      regEx.Pattern = "^({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?$"
      isGUID = regEx.Test(strGUID)
      set RegEx = nothing
End Function

VBScript では、RegExp オブジェクトを使用して、正規表現を使用して文字列を照合できます。

Techek の機能は、クラシック ASP (vbScript) では機能しませんでした。何らかの奇妙な理由で、常に True が返されました。いくつかの小さな変更を加えただけで機能しました。以下を参照してください

Function isGUID(byval strGUID)
  if isnull(strGUID) then
    isGUID = false
    exit function
  end if
  dim regEx
  set regEx = New RegExp
  regEx.Pattern = "{[0-9A-Fa-f-]+}"
  isGUID = regEx.Test(strGUID)
  set RegEx = nothing
End Function

別の解決策があります:

try
{
  Guid g = new Guid(stringGuid);
  safeUseGuid(stringGuid); //this statement will execute only if guid is correct
}catch(Exception){}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top