javascript - regex:search character still not perfect -
मुझे यह कोड है:
& lt; script type = "text / javascript" & gt ; Var str = "KD-R35H2UND"; Var पट 1 = / [जी | टी | ईई | ईजेयू]। * डी / आई; document.write (str.match (patt1)); & Lt; / स्क्रिप्ट & gt; var patt1 = ...
पर कोड का उपयोग कर मैं इस तरह से दिखा सकता हूँ: अगर मैं केडी-आर 35ईडी टाइप करता हूं = & gt; ईडी केडी-आर35 यूड = & gt; यूएनडी केडी-आर 35 जेडी = & gt; जद केडी-आर 35 टीजेडी = & gt; टीजेडी केडी-आर35ईड = & gt; मेरी समस्या है: अगर मैं KD-R35GD
टाइप कर सकता / सकती हूं तो जीडी
दिखा सकता है लेकिन अगर KD-R35D यह कुछ भी नहीं दिखा सकता है..यह कैसे काम करता है?
बी *
का अर्थ है "शून्य <"
।
के शून्य या अधिक घटनाओं का मिलान करें "इसका मतलब है" नई लाइन को छोड़कर किसी भी वर्ण से मिलान करें "।
[EE | EJU]
का अर्थ है " ई
, एक |
, एक J
या < कोड> यू
"।
। *
का अर्थ है "न्यूलाइन शून्य या अधिक बार को छोड़कर किसी भी चरित्र से मेल खाएगा।"
डी मतलब " > डी "।
ऐसा करने के लिए आपने क्या कहा है regex कर रहा है।
- आपके प्रश्न में दिए गए उदाहरणों से, मैं अनुमान लगाता हूं कि वास्तविक नियम होना चाहिए:
- स्ट्रिंग
केडी-आर 35
से शुरू होता है । - किसी भी संख्या में अल्फ़ान्यूमेरिक वर्ण का पालन हो सकता है, जब तक
- एक
ई
, एक j
या U
उनके बीच में है, और - स्ट्रिंग
डी में समाप्त होता है। ये नियम, एक regex के रूप में, पढ़ें:
^ स्ट्रिंग केडी-आर 35 # शाब्दिक पाठ का # प्रारंभ (# कैप्चरिंग समूह \ w * # अल्फ़ान्यूमेरिक वर्णों की कोई भी संख्या [ईजेयू] # कम से कम ई, जे,
या, जावास्क्रिप्ट में:
या यू \ w * # अल्फ़ान्यूमेरिक वर्णों की कोई संख्या # कोड> मैच = विषय। मैच (/ ^ केडी-आर 35 (\ w * [ईजेयू] \ डब्ल्यू * डी) $ / i); अगर (मैच! = नल) {// सफल मैच mytext = मैच [1] // कैप्चरिंग समूह 1} और {// मैच का प्रयास विफल हुआ}
मैं उस ऊपरी / लोअरकेस कोई फर्क नहीं पड़ता।
संपादित करें: एर्म, आपका नया संपादन नियम बदलता है ऐसा लगता है कि जब तक यह KD-R35
से शुरू होता है और D
में समाप्त होता है, तब तक किसी भी स्ट्रिंग की अनुमति दी जाती है। इस मामले में, regex बस / ^ केडी-आर 35 (\ w * डी) $ / i
होगा।
Comments
Post a Comment