Vérifier la validité d'un guide
Question
Comment vérifier si une chaîne est un GUID valide dans vbscript? Quelqu'un at-il écrit une méthode IsGuid?
La solution
Ceci est similaire à la même question en c # . Voici la regex dont vous aurez besoin ...
^ [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} (}}) $
Mais ce n'est que pour commencer. Vous devrez également vérifier que les différentes parties, telles que la date et l'heure, se situent dans les limites acceptables. Pour avoir une idée de la complexité du test d'un GUID valide, examinez le code source de l'un des constructeurs Guid.
Autres conseils
Cette fonction fonctionne en ASP classique:
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}(}|\))?<*>quot;
isGUID = regEx.Test(strGUID)
set RegEx = nothing
End Function
Voir Vérifier un GUID .
Dans VBScript, vous pouvez utiliser l'objet RegExp pour faire correspondre la chaîne à l'aide d'expressions régulières.
La fonction de Techek ne fonctionnait pas pour moi en ASP classique (vbScript). Il est toujours revenu Vrai pour une raison étrange. Avec quelques changements mineurs, cela a fonctionné. Voir ci-dessous
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
il existe une autre solution:
try
{
Guid g = new Guid(stringGuid);
safeUseGuid(stringGuid); //this statement will execute only if guid is correct
}catch(Exception){}