Comment vérifier si une variable contient un identifiant UUID/GUID valide ?
Je ne suis actuellement intéressé que par la validation des types 1 et 4, mais ce n'est pas une limite pour votre réponse.
Comment vérifier si une variable contient un identifiant UUID/GUID valide ?
Je ne suis actuellement intéressé que par la validation des types 1 et 4, mais ce n'est pas une limite pour votre réponse.
Une bonne façon de le faire dans Node est d'utiliser la fonction ajv
paquet ( https://github.com/epoberezkin/ajv ).
const Ajv = require('ajv');
const ajv = new Ajv({ allErrors: true, useDefaults: true, verbose: true });
const uuidSchema = { type: 'string', format: 'uuid' };
ajv.validate(uuidSchema, 'bogus'); // returns false
ajv.validate(uuidSchema, 'd42a8273-a4fe-4eb2-b4ee-c1fc57eb9865'); // returns true with v4 GUID
ajv.validate(uuidSchema, '892717ce-3bd8-11ea-b77f-2e728ce88125'); // returns true with a v1 GUID
Vous pouvez le vérifier avec la fonction suivante, surtout si votre service est celui qui a créé l'UUID à l'origine :
import java.util.UUID;
...
public static boolean validateUUID(String uuid) {
if (uuid == null) {
return false;
}
try {
if (!uuid.equals(UUID.fromString(uuid).toString())) {
return false;
}
} catch (Exception e) {
return false;
}
return true;
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Au format chaîne, pas hex, pas bin, ou je ne sais pas ce que vous demandez
0 votes
^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$
0 votes
Si vous ne parvenez pas à exclure les variables contenant une chaîne de 32 chiffres hexadécimaux consécutifs (sans regroupement), consultez le site suivant ma réponse
0 votes
Ça pourrait être utile : npmjs.com/package/uuid-validate