दिलचस्प पोस्ट
मैं पायथन में SIGINT कैसे कैद कर सकता हूं? तत्वों में पॉलिमर साझा शैलियों स्विफ्ट 3 पर अधिसूचना केंद्र की समस्या वेब संदर्भ और सेवा संदर्भ में अंतर? जीसीएम पर पंजीकरण करते समय नल डिवाइस आईडी हो रही है स्पार्क: सिंगल-कुंजी RDD के साथ 2-ट्यूपल-कुंजी RDD में शामिल होने के लिए सबसे अच्छी रणनीति क्या है? मल्टी लाइन प्रीप्रोसेसर मैक्रोज़ कोड में जावास्क्रिप्ट ब्रेकपॉइंट सेट करें – क्रोम में? एक बिटमैप के साथ कॉलबैक प्राप्त करने के लिए पिकासो का उपयोग करें Asp.net MVC 4 में साधारण अजाक्स आरंभ का उपयोग कैसे करें? मैंने अपनी .keystore फ़ाइल खो दी? चर और विधियों के साथ अंडरस्कोर बनाम डबल अंडरस्कोर सी + + पुनर्निर्देशन हैडर फ़ाइलें (winsock2.h) जावास्क्रिप्ट में, "0" झूठी के बराबर क्यों है, लेकिन जब 'if' द्वारा जांच की जाती है तो यह स्वयं के द्वारा गलत नहीं है? Excel में SQL क्वेरी डेटा निर्यात करें

वैध UUID / GUID का परीक्षण कैसे करें?

अगर चर में मान्य UUID / GUID पहचानकर्ता है, तो जांच कैसे करें?

मैं वर्तमान में केवल 1 और 4 प्रकारों को मान्य करने में रुचि रखता हूं, लेकिन यह आपके उत्तर के लिए सीमित नहीं है।

वेब के समाधान से एकत्रित समाधान "वैध UUID / GUID का परीक्षण कैसे करें?"

वर्तमान में, UUID के अनुसार आरएफसी 4122 में निर्दिष्ट है।

इसलिए UUID को मान्य करने के लिए …

/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i 

… सुनिश्चित करता है कि आपके पास एक कैनोनिक रूप से प्रारूपित यूयूआईडी है जो संस्करण 1 से 5 है और आरएफसी 4122 के अनुसार उचित प्रकार है।

नोट: ब्रेसेस "{" और "}" विहित नहीं हैं वे कुछ प्रणालियों और प्रयोजनों का एक विरूपण साक्ष्य हैं

मूल प्रश्न की आवश्यकताओं को पूरा करने के लिए ऊपर regex को संशोधित करने के लिए आसान है।

संकेत: regex समूह / कब्जा

बचाव के लिए regex

 /^[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}$/.test('01234567-9ABC-DEF0-1234-56789ABCDEF0'); 

या कोष्ठक के साथ

 /^\{?[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}‌​\}?$/ 

यदि आप विकास के लिए Node.js का उपयोग कर रहे हैं, तो उसे मान्य नामक पैकेज का उपयोग करने की अनुशंसा की जाती है। इसमें यूयूआईडी प्लस के विभिन्न संस्करणों को मान्य करने के लिए आवश्यक सभी रिगेक्स शामिल हैं और आप सत्यापन के लिए कई अन्य कार्यों को प्राप्त करते हैं।

यहां एनपीएम लिंक है: मान्यकर्ता

 var a = 'd3aa88e2-c754-41e0-8ba6-4198a34aa0a2' v.isUUID(a) true v.isUUID('abc') false v.isNull(a) false 

गैंबोल के उत्तर के पास लगभग सभी मामलों में नौकरी होगी, जो अब तक दिए गए सभी जवाबों को याद नहीं है कि ग्रैमीटेड स्वरूपण (8-4-4-4-12) पाठ में GUID को सांकेतिक रूप से अनिवार्य नहीं है यह बहुत अक्सर प्रयोग किया जाता है लेकिन स्पष्ट रूप से 32 हेक्साडेसिमल अंकों की सादे श्रृंखला भी मान्य हो सकती है। [1] regex बढ़ा :

 /^[0-9a-f]{8}-?[0-9a-f]{4}-?[1-5][0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$/i 

[1] सवाल यह है कि हम इन चीजों के बारे में जांच कर रहे हैं, इसलिए हमें यूजर-अपरिवर्तनीय रूप को भी शामिल करना चाहिए।

  • .NET GUID में क्यों डैश हैं? – ढेर अतिप्रवाह प्लस स्वीकृत जवाब
  • GUID को जांचें और मान्य करें (guid.us)
  • Guid.ToString विधि (स्ट्रिंग) (MSDN)

यदि आप किसी विशिष्ट यूयूआईडी संस्करण की जांच या मान्य करना चाहते हैं, तो यहां पर संबंधित रेगेक्सस हैं।

ध्यान दें कि फर्क सिर्फ इतना है संस्करण संख्या , जिसे 4.1.3. Version में समझाया गया है 4.1.3. Version यूयूआईडी 4122 आरएफसी का 4.1.3. Version अध्याय

संस्करण संख्या तीसरे समूह का पहला अक्षर है: [VERSION_NUMBER][0-9A-F]{3} :

  • UUID v1:

     /^[0-9A-F]{8}-[0-9A-F]{4}-[1][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i 
  • UUID v2:

     /^[0-9A-F]{8}-[0-9A-F]{4}-[2][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i 
  • UUID v3:

     /^[0-9A-F]{8}-[0-9A-F]{4}-[3][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i 
  • UUID v4:

     /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i 
  • UUID v5:

     /^[0-9A-F]{8}-[0-9A-F]{4}-[5][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i 

अभी तक पोस्ट किए गए सभी प्रकार-विशिष्ट regexes "प्रकार 0" नील यूयूआईडी पर विफल रहे हैं, जो कि आरएफसी के 4.1.7 में परिभाषित हैं:

शून्य यूयूआईडी यूयूआईडी का विशेष रूप है जो कि सभी 128 बिट्स शून्य पर सेट करने के लिए निर्दिष्ट है: 00000000-0000-0000-0000-000000000000

वुल्फ का जवाब बदलने के लिए:

 /^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-5][0-9a-f]{3}-?[089ab][0-9a-f]{3}-?[0-9a-f]{12}$/i 

या, सभी शून्यों के बिना "टाइप 0" को ठीक से बाहर करने के लिए, हमारे पास निम्न है (ल्यूक के लिए धन्यवाद):

 /^(?:[0-9a-f]{8}-?[0-9a-f]{4}-?[1-5][0-9a-f]{3}-?[89ab][0-9a‌​-f]{3}-?[0-9a-f]{12}‌​|00000000-0000-0000-‌​0000-000000000000)$/‌​i 

छोटी विधि यह जांचने के लिए कि क्या स्ट्रिंग UUID है

 public boolean isUUID(String s){ return s.matches("^[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-9a-f\-]{36})* । यह केवल यूयूआईडी की पुष्टि करता है