isValidUUID method - UuidValidation class - validation library - Dart API
Description: API docs for the isValidUUID method from the UuidValidation class, for the Dart programming language.

# isValidUUID static method

bool isValidUUID({

1. String fromString = '',
2. Uint8List? fromByteList,
3. ValidationMode validationMode = ValidationMode.strictRFC9562,
4. bool noDashes = false,

})

Validates the provided uuid to make sure it has all the necessary components and formatting and returns a bool You can choose to validate from a string or from a byte list based on which parameter is passed.

## Implementation

    static bool isValidUUID(
        {String fromString = '',
        Uint8List? fromByteList,
        ValidationMode validationMode = ValidationMode.strictRFC9562,
        bool noDashes = false}) {
      if (fromByteList != null) {
        fromString = UuidParsing.unparse(fromByteList);
      }

      // UUID of all 0s is ok.
      if (fromString == Namespace.nil.value) {
        return true;
      }

      // UUID of all Fs is ok.
      if (fromString == Namespace.max.value) {
        return true;
      }

      // If its not 36 characters in length, don't bother (including dashes).
      if (!noDashes && fromString.length != 36) {
        return false;
      }

      // If its not 32 characters in length, don't bother (excluding excluding).
      if (noDashes && fromString.length != 32) {
        return false;
      }

      // Make sure if it passes the above, that it's a valid UUID or GUID.
      switch (validationMode) {
        // ignore: deprecated_member_use_from_same_package
        case ValidationMode.strictRFC9562 || ValidationMode.strictRFC4122:
          {
            var pattern = (noDashes)
                ? r'^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-8][0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$'
                : r'^[0-9a-f]{8}-[0-9a-f]{4}-[0-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$';
            final regex = RegExp(pattern, caseSensitive: false, multiLine: true);
            final match = regex.hasMatch(fromString.toLowerCase());
            return match;
          }
        case ValidationMode.nonStrict:
          {
            var pattern = (noDashes)
                ? r'^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-8][0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$'
                : r'^[0-9a-f]{8}-[0-9a-f]{4}-[0-8][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$';
            final regex = RegExp(pattern, caseSensitive: false, multiLine: true);
            final match = regex.hasMatch(fromString.toLowerCase());
            return match;
          }
      }
    }