मैं गंभीरता से इस पर पागल हो रहा हूं और मैंने पहले से ही यह पता लगाने की कोशिश कर रहा है कि यहां क्या चल रहा है। इसलिए कृपया मुझे एक हाथ दें =)
मुझे जावास्क्रिप्ट में स्ट्रिंग्स के कुछ RegExp मिलान करने की आवश्यकता है। दुर्भाग्य से यह बहुत अजीब व्यवहार करता है। यह कोड:
var rx = /(cat|dog)/gi;
var w = new Array("I have a cat and a dog too.", "There once was a dog and a cat.", "I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.");
for (var i in w) {
var m = null;
m = rx.exec(w[i]);
if(m){
document.writeln("<pre>" + i + "\nINPUT: " + w[i] + "\nMATCHES: " + m.slice(1) + "</pre>");
}else{
document.writeln("<pre>" + i + "\n'" + w[i] + "' FAILED.</pre>");
}
}
पहले दो तत्वों के लिए "बिल्ली" और "कुत्ता" लौटाता है, जैसा कि यह होना चाहिए, लेकिन फिर कुछ- exec()कॉल वापस लौटने लगते हैं null। मुझे समझ में नहीं आता क्यों।
मैंने यहां एक फिडेल पोस्ट किया है , जहां आप कोड को चला सकते हैं और संपादित कर सकते हैं।
और अब तक मैंने क्रोम और फ़ायरफ़ॉक्स में इसकी कोशिश की है।
चीयर्स!
/ Christofer
"I have a cat and a dog too.", ऐसा लगता है