357 votes

Comment tester un UUID/GUID valide ?

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.

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

3voto

wellington Points 11

Si vous utilisez le paquet uuid, vous pouvez importer le valid et lui passer l'id.

const { v4: uuidv4, validate } = require('uuid');

const { id } = request.params;
validate(id) ? true : false;

2voto

userTatha Points 85

Utilisez la méthode .match() pour vérifier si String est un UUID.

public boolean isUUID(String s){
    return s.match("^[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}$");
}

2voto

blackcatweb Points 557

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

2voto

ethan23 Points 11

Si quelqu'un utilise yup La bibliothèque de validateurs de schémas JavaScript. Cette fonctionnalité peut être réalisée avec le code ci-dessous.

const schema = yup.object().shape({
   uuid: yup.string().uuid()
 });
 const isValid = schema.isValidSync({uuid:"string"});

0voto

bappak Points 410

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.com

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.

Powered by:

X