2012-04-10 19 views
11

< kabul etmek için bir regex ifadesi alıyorum ve bunların arasındaki tüm içeriği kapmak için dış sınırlayıcılarım olarak kullanıyorum. Bu türKöşeli parantezler (< or >) normal ifadede özel mi?

<tfdsfa> 

gibi

yüzden içerik kaptı edilmelidir.

< ve> karakterlerinden veya bunlardan kaçmak zorunda mıyım? senaryom tarafından oluşturulan

Regex: dosyadan

/<[^(>)]*>/g 

Kodu:

data.method.highlight = function() { 
    var x = data.syntax, 
     text = data.$.span.html(); 
    for (var i=0, len = x.length; i < len; i++) { 
     var rx; 
     if (x[i].range) { 
      rx = new RegExp(x[i].tag[0] + "[^(" + x[i].tag[1] + ")]*" + x[i].tag[1], "g"); 
      console.log(rx); 
     } 
     else { 
      var temprx = x[i].tag[0]; 
      for (var z = 1; z < x[i].tag.length; z++) { 
       temprx += "|" + x[i].tag[z]; 
      } 
      rx = new RegExp(temprx, "g"); 
     } 
     text = text.replace(rx,function (match) { 
      console.log("looping - range"); 
      return '<span class="' + x[i].class.default + '">' + match + '</span>'; 
     }); 
     data.$.span.html(text); 
    } 
}; 
+9

Normal ifadeniz çalışır. Tam olarak elde edemediğiniz şey nedir? –

+0

Bu aracı, düzenli ifadeler geliştirirken kullanın: http://gskinner.com/RegExr/ –

+0

Bu ifadeyi nasıl kullandığınızı gösterir misiniz? – MilkyWayJoe

cevap

16

Ne < ne de > ifadenin içinde meta karakter olan.

Bu benim için çalışıyor:

'<foo> and <bar>'.match(/<[^>]*>/g); // ["<foo>", "<bar>"] 
+0

ana sorusuna ekledim. Yaptığım düzenlemeye bir göz atabilir misin? Regex, jsfiddle’ta çalıştırdığımda ancak betiğimde çalışmadığında çalışır. Bunun nasıl gerçekleştiği hakkında bir fikrin var mı? –

+0

@MikeDepies, 'konsol.log (rx)' den çıktı nedir? Daha spesifik olarak, RegExp yapıcısına gönderdiğiniz metin, "metnin" kesin değeri ve sonuç ile beklenen değer nedir? – davin

+0

Sorunun çözüldüğünü düşündüğünüzde, metin değerinin ne olduğunu sorduğunuz için teşekkür ederiz. Metin,

-1

HTML ve tarayıcıya sonucu eklemeye çalışıyorum çünkü sorun var olabilir o <blablabla> gibi bir değil geçerli HTML etiketi olduğunu 'düşünüyor.'

İlgili konular