Question

Comment vérifier si une chaîne est un GUID valide dans vbscript? Quelqu'un at-il écrit une méthode IsGuid?

Était-ce utile?

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

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){}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top