如何验证某个 string 是否为合法的 GUID ?
生活随笔
收集整理的這篇文章主要介紹了
如何验证某个 string 是否为合法的 GUID ?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
咨詢區(qū)
001:
假如有一個string字符串,請問如何判斷它是合法的GUID還是一個普通的數(shù)字型字符串, 是否可以用包含 字母 進行區(qū)分?
回答區(qū)
Can Gencer:
判斷是否有 字母 的方式是不靠譜的,比如說:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF 它是一個有效的 GUID,而 00000000-0000-0000-0000-000000000000 也是一個有效的GUID。
其實可以通過 Guid.Parse 或者 Guid.TryParse 來強制轉換,參考如下代碼:
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)) { ... }如果你用的是 .NET 4.0 之前的版本,可以用 構造函數(shù) 的方式進行判斷,比如下面這樣:
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;} }tofutim:
GUID 是一個 16byte 長度的數(shù)字,但通常都是用 32 個16進制字符表示,所以你看到的 GUID 不一定包含字母,只不過那么大一串你大概率會遇到而已。
換句話說,比如你的 GUID 是16進制表示的,那你可以簡單的判斷這個string的length是否為32差不多就可以了,如果嚴謹一點的話,可以使用正則。
public?static?bool?IsGUID(string?expression) {if?(expression?!=?null){Regex?guidRegEx?=?new?Regex(@"^(\{{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})$");return?guidRegEx.IsMatch(expression);}return?false; }點評區(qū)
判斷一個string是否為合法的 GUID,居然有四種方法,挺好,學習了。
總結
以上是生活随笔為你收集整理的如何验证某个 string 是否为合法的 GUID ?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字化如何界定IT与OT?
- 下一篇: Asp.NET Core 如何使用Ela