Есть ли способ проверить версию UUID? Я знаю, что UUID().uuidString - это версия 4. и у меня есть переменная, которая поступает с сервера, и она находится в версии 1 UUID.

Теперь я хочу проверить версию UUID и принять решение о своих действиях.

2
tara tandel 19 Дек 2018 в 12:33

1 ответ

Лучший ответ

UUID версии 4 имеют вид xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, где x - любая шестнадцатеричная цифра, а y - одно из 8, 9, A или B, как описано здесь: Как определить, является ли строка допустимым UUID v4?

Если вы используете только версию 4 и версию 1, вы можете сделать следующее:

func checkUUIDVersion(uuid: String) -> Int {
    let regx = "^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}"
    if uuid.uppercased().range(of: regx, options: .regularExpression, range: nil, locale: nil) != nil {
        return 4;
    }
    return 1;
}
3
Torongo 19 Дек 2018 в 10:33