1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/guid.h" 6 7 #include "base/strings/string_util.h" 8 9 namespace base { 10 IsValidGUID(const std::string & guid)11bool IsValidGUID(const std::string& guid) { 12 const size_t kGUIDLength = 36U; 13 if (guid.length() != kGUIDLength) 14 return false; 15 16 for (size_t i = 0; i < guid.length(); ++i) { 17 char current = guid[i]; 18 if (i == 8 || i == 13 || i == 18 || i == 23) { 19 if (current != '-') 20 return false; 21 } else { 22 if (!IsHexDigit(current)) 23 return false; 24 } 25 } 26 27 return true; 28 } 29 30 } // namespace base 31