質問
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
見る GUIDを確認する.
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){}
所属していません StackOverflow