2010-09-30 8 views
1


j'ai un petit problème et je ne sais pas ce qui est fauxJavascript Regex - Remplacer {rien

var selector_css; 
    var sheet= document.styleSheets[0]; 
    var rules= 'cssRules' in sheet? sheet.cssRules : sheet.rules; 
    for (var i= 0; i<rules.length; i++) 
    { 
     var rule= rules[i]; 
     var text= 'cssText' in rule? rule.cssText : rule.selectorText+' {'+rule.style.cssText+'}'; 
     text = text.replace(/\s/g, ''); 
     selector_css = text.match(/^(.*?){/gi); 
     // selector_css = selector_css.replace(/{/g,''); // <- dont work ? 
     $('body').append('- '+selector_css+' <br />'); 
    } 

Tout fonctionne très bien, mais quand j'ajouter

selector_css = selector_css.replace(/{/g,''); 

je nai obtenir un résultat ou une erreur, mais pourquoi? Quelqu'un peut-il m'aider?

http://jsfiddle.net/beMKY/

Merci à l'avance!
Peter

+0

Vous devez échapper aux accolades comme ceci:/\ {/ g – Thomas

Répondre

3

Certains caractères spéciaux comme "." doivent être échappé:

selector_css = selector_css.replace(/\{/g,''); 

Mais dans ce cas, le problème est que css_selector est un objet (tableau) et non une chaîne. Vous pouvez appliquer replace seulement à une chaîne !!! Utilisez

selector_css = selector_css[0].replace(/\{/g,''); 
+0

http://jsfiddle.net/beMKY/2/ – Peter

+0

// seulement une chaîne ... désolé, j'étais aveugle:) ... Merci pour l'aide rapide! – Peter

+0

content que cela fonctionne pour vous maintenant – Thariama