2010-09-30 7 views
12
var dateRegex = /\/Date\((\d+)\)\//g; // [0-9] instead of \d does not help. 
dateRegex.test("/Date(1286443710000)/"); // true 
dateRegex.test("/Date(1286445750000)/"); // false 

क्रोम और फ़ायरफ़ॉक्स दोनों जावास्क्रिप्ट कंसोल पुष्टि करते हैं। क्या है, दोस्तों?मेरी तिथि regex के साथ क्या गलत है?

संपादित करें: और भी आसान परीक्षण का मामला:

var dateRegex = /Date\(([0-9]+)\)/g; 
dateRegex.test("Date(1286445750000)"); // true 
dateRegex.test("Date(1286445750000)"); // false 
dateRegex.test("Date(1286445750000)"); // true 
dateRegex.test("Date(1286445750000)"); // false 
dateRegex.test("Date(1286445750000)"); // true 

इससे पता चलता है कि यह सही/गलत हर बार alternates ...

उत्तर

21

आपके मामले में अंत से g संशोधक निकालने के लिए, उदाहरण के लिए:

var dateRegex = /\/Date\((\d+)\)\//; 
dateRegex.test("Date(1286445750000)"); // true 
dateRegex.test("Date(1286445750000)"); // true 
dateRegex.test("Date(1286445750000)"); // true 
dateRegex.test("Date(1286445750000)"); // true 
dateRegex.test("Date(1286445750000)"); // true 

ईसीएमएस्क्रिप्ट 3, there's a great post on the details here में रेगेक्स लागू करने के तरीके के साथ यह एक बग है।

+1

एक बुरा ब्राउज़र व्यवहार जो माइक्रोसॉफ्ट की गलती नहीं है? क्या देता है? =) – RMorrisey

+1

फिर भी समर्थन देखने के लिए कोई योजना नहीं है, हे? – NullUserException

+0

@NullUserException - मैं वास्तव में spec के इस हिस्से के साथ नहीं रहता, कुछ regex लड़कों शायद ... लेकिन वह लेख कुछ साल पुराना है, हालांकि यह ओपी के रूप में एक ही बग है। भावी चश्मे के लिए टेबल पर क्या हो सकता है * हो सकता है *, लेकिन कम से कम मैंने कुछ भी नहीं सुना है। –

1

/g समस्या पैदा कर रहा था। निम्नलिखित कोड ठीक काम करता है।

<div id="test"></div> 
    <script type="text/javascript"> 
     var reg = /Date\(\d+\)/; //REGEX WITHOUT g 
     var d="Date(1286445750000)"; 
     $(function(){ 
      var $d=$("div#test"); 
      for(var i=0;i<100;i++){ 
       if(reg.test(d)){ 
        $d.html($d.html()+"<br/>Matched: ["+d+"]"); 
       } 
       else{ 
        $d.html($d.html()+"<br/>Not Matched: ["+d+"]"); 
       } 
      } 
     }); 
    </script> 
संबंधित मुद्दे