2009-11-19 12 views
5

मुझे इंटरनेट पर एक विधि मिली जो यूट्यूब वीडियो के आईडी को पुनः प्राप्त कर सकती है यूआरएलमुझे यह "[\? &] V = ([^ & #] *)" इंटरनेट पर किसी ने मुझे यह समझाया

यह है।

 
var vid; 
var results; 
results = url.match("[\\?&]v=([^&#]*)"); 
vid = (results === null) ? url : results[1]; 

आईडी "vid" में निहित होगी।

जो मुझे समझ में नहीं आता है और मुझे दिलचस्प लगता है और यह जानना है।

 
results = url.match("[\\?&]v=([^&#]*)"); 

यह कैसे काम करता है?

+0

सीधे सवाल। चरण-दर-चरण समझाए जाने के लिए – powtac

उत्तर

10

यह एक पूर्ण यूआरएल से वीडियो की आईडी निकालने के लिए regular expression का उपयोग कर रहा है। यह विशेष रेगेक्स निम्नानुसार टूट जाता है:

  1. [\\?&] एक वर्ण वर्ग है। यह एक एकल चरित्र से मेल खाता है जो या तो & या ? है। (प्रश्न चिह्न जावास्क्रिप्ट regexes में एक विशेष चरित्र है, तो इसे बैकस्लैश से पहले से बच जाना चाहिए। बैकस्लैश जावास्क्रिप्ट तारों में एक विशेष चरित्र है, इसलिए यह भी बच निकला जाना चाहिए, इसलिए डबल बैकस्लैश। यह काफी है नियमित अभिव्यक्तियों में आम।)
  2. v= शाब्दिक स्ट्रिंग v= से मेल खाता है।
  3. ( एक कैप्चरिंग समूह शुरू करता है, इसलिए अगले ) तक सब कुछ लौटाए गए सरणी में एक अलग प्रविष्टि में रखा जाएगा।
  4. [^&#]*& या # तक कोई भी वर्ण (सहित कोई भी नहीं) पाया जाता है। ब्रैकेट ऊपर वर्णित वर्ण श्रेणी इंगित करते हैं, और ^ कक्षा को निष्क्रिय करता है, इसलिए इसमें सभी वर्ण शामिल हैं जो को छोड़कर अंत ब्रैकेट से पहले सूचीबद्ध हैं। * इंगित करता है कि पिछली वर्ण वर्ग को शून्य या अधिक बार मिलान किया जाना है।
  5. ) कैप्चरिंग समूह को समाप्त करता है।

मैच मान लिया जाये कि सफल होता है, results[0] पूरे URL होता है, और results[1] पहले कैप्चरिंग समूह की सामग्री है, अर्थात वीडियो की आईडी में शामिल है।

+3

+1; यह –

+0

+1 पोस्ट किया गया सबसे उपयोगी उत्तर है I Andreas Grech – a432511

+0

से सहमत हूं मेरी पोस्ट हटा दी गई है। आपका बेहतर है :-) – a432511

1

यह यूट्यूब यूआरएल में वीडियो आईडी से मेल खाता है।

[\\?&]v= // पाता है पहले? V = या & वी = क्वेरी स्ट्रिंग

([^&#]*) में // सब कुछ ऊपर अगले & या #

वीडियो आईडी results[1] में संग्रहीत किया जाता करने के लिए (से मेल खाता है मानते हुए कि एक मैच था)

संबंधित मुद्दे