यह निर्धारित करने के लिए कि यदि स्ट्रिंग में GUID बनाम संख्याओं का स्ट्रिंग है।
क्या GUID में हमेशा कम से कम 1 अल्फा वर्ण होता है?
जवाबों:
देखें कि क्या ये मदद करती हैं: -
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 है, तो मैं वास्तव में एक गाइड ऑब्जेक्ट नहीं बनाना चाहता हूं जिसकी मुझे आवश्यकता नहीं है। इसलिए...
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))
{
...
}
return Guid.TryParse(value, out var _);
एक GUID एक 16-बाइट (128-बिट) संख्या है, जिसे आमतौर पर 32-वर्ण हेक्साडेसिमल स्ट्रिंग द्वारा दर्शाया जाता है। एक GUID (हेक्स रूप में) को किसी भी अल्फा वर्ण की आवश्यकता नहीं है, हालांकि संयोग से यह संभवतः होगा। यदि आप हेक्स रूप में एक GUID को लक्षित कर रहे हैं, तो आप जांच सकते हैं कि स्ट्रिंग 32-वर्ण लंबा है (डैश और कर्ली ब्रैकेट्स को अलग करने के बाद) और इसमें केवल अक्षर AF और संख्याएँ हैं।
GUID (डैश-प्लेसमेंट) को प्रस्तुत करने की कुछ निश्चित शैली है और इसके लिए जाँच करने के लिए नियमित अभिव्यक्तियों का उपयोग किया जा सकता है, जैसे,
@"^(\{{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 और Guide.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;
}
}
स्वीकृत उत्तर के आधार पर मैंने एक एक्सटेंशन विधि बनाई जो निम्नानुसार है:
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;
}
जहां "मैजिकन्यूट्स.डेफॉल्टगाइड" सिर्फ एक खाली "सभी शून्य गाइड" 00000000-0000-0000-0000-0000-000000000000 है।
मेरे मामले में एक अमान्य ToGuid रूपांतरण के परिणामस्वरूप उस मूल्य को वापस करना कोई समस्या नहीं थी।
http://en.wikipedia.org/wiki/Glo को विश्व स्तर पर देखें
इस बात की कोई गारंटी नहीं है कि वास्तव में एक अल्फा होगा।
अगर (MyGuid! = Guild.Empty)
{
// मान्य गिल्ड
}
अन्य {
// अमान्य गिल्ड
}
GUID कंस्ट्रक्टर मानक कार्यक्षमता का उपयोग करें
Public Function IsValid(pString As String) As Boolean
Try
Dim mGuid As New Guid(pString)
Catch ex As Exception
Return False
End Try
Return True
End Function