如何validationGUID是一个GUID

如何确定一个string是否包含一个GUID而不是一串数字。

将一个GUID总是包含至less1个字母字符?

看看这些是否有帮助:

Guid guidResult = Guid.Parse(inputString)

http://msdn.microsoft.com/en-us/library/system.guid.parse.aspx

bool isValid = Guid.TryParse(inputString, out guidOutput)

http://msdn.microsoft.com/en-us/library/system.guid.tryparse.aspx

GUID是一个16字节(128位)数字,通常由一个32个字符的hexstring表示。 一个GUID(hexforms)不需要包含任何字母字符,虽然偶然可能会。 如果您以hexforms定位GUID,则可以检查该string是32个字符(在去掉破折号和大括号后),并且只有字母AF和数字。

有一种呈现GUID(破折号布局)的风格,正则expression式可以用来检查这个,例如,

 @"^(\{{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})$" 

http://www.geekzilla.co.uk/view8AD536EF-BC0D​​-427F-9F15-3A1BC663848E.htm 。 也就是说,应该强调的是,GUID确实是一个128位的数字,可以用许多不同的方式来表示。

不能保证GUID包含字母字符。 FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF是一个有效的GUID,因此是00000000-0000-0000-0000-000000000000和之间的任何内容。

如果您使用的是.NET 4.0,则可以使用Guid.Parse和Guid.TryParse的上面的答案。 否则,你可以做这样的事情:

 public static bool TryParseGuid(string guidString, out Guid guid) { if (guidString == null) throw new ArgumentNullException("guidString"); try { guid = new Guid(guidString); return true; } catch (FormatException) { guid = default(Guid); return false; } } 

根据接受的答案,我创build了一个扩展方法如下:

 public static Guid ToGuid(this string aString) { Guid newGuid; if (string.IsNullOrWhiteSpace(aString)) { return MagicNumbers.defaultGuid; } if (Guid.TryParse(aString, out newGuid)) { return newGuid; } return MagicNumbers.defaultGuid; } 

其中“MagicNumbers.defaultGuid”只是“空的”全零Guid“00000000-0000-0000-0000-000000000000”。

在我的情况下,作为无效ToGuid转换的结果返回该值不是一个问题。

请参阅http://en.wikipedia.org/wiki/Globally_unique_identifier

不能保证阿尔法实际上会在那里。

如果是有效的Guid,将返回Guid,否则返回Guid.Empty

 if (!Guid.TryParse(yourGuidString, out yourGuid)){ yourGuid= Guid.Empty; } 

当我只是testing一个string,看看它是否是一个GUID,我真的不想创build一个我不需要的Guid对象。 所以…

 public static class GuidEx { public static bool IsGuid(string value) { Guid x; return Guid.TryParse(value, out x); } } 

以下是你如何使用它:

 string testMe = "not a guid"; if (GuidEx.IsGuid(testMe)) { ... } 

你也可以使用正则expression式,看看这个网站,并searchguid。 http://regexlib.com