Prüfen Sie, ob eine gültige guid
Frage
Wie kann man überprüfen, ob eine Zeichenfolge eine gültige GUID in VBScript ist? Hat jemand eine IsGuid Methode geschrieben?
Lösung
Dies ist vergleichbar mit dem gleiche Frage in c # . Hier ist die regex müssen Sie ...
^ [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} (}}) $
Aber das ist nur der Anfang. Sie müssen auch sicherstellen, dass die verschiedenen Teile wie Datum / Uhrzeit innerhalb akzeptabler Bereiche. Um eine Vorstellung von nur zu erhalten, wie komplex es ist für eine gültige GUID zu testen, Blick auf den Quellcode für eine der Guid Bauer.
Andere Tipps
Diese Funktion ist im klassischen ASP arbeitet:
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
Siehe eine GUID überprüfen.
In VBScript können Sie das RegExp-Objekt verwenden, um die Zeichenfolge mit regulären Ausdrücken entsprechen.
Techek die Funktion nicht für mich arbeiten im klassischen ASP (VBScript). Es ist immer wahr aus irgendeinem Grund zurückgebracht werden. Mit ein paar kleinen Änderungen hat es funktioniert. Siehe unten
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
gibt es eine andere Lösung:
try
{
Guid g = new Guid(stringGuid);
safeUseGuid(stringGuid); //this statement will execute only if guid is correct
}catch(Exception){}