J'essaie de remplacer toutes les chaînes @import dans une seule chaîne, par ex.javascript regex single-line
var str = 'buttons .reprint{height:56px;background-position:-47px -1496px;}@import "../common/buttons.css";@import "../screen/screen-1.css";@import "../screen/screen-2.css";@import "../screen/screen-3.css";@import "../screen/screen-5.css";@import "../screen/screen-6.css";@import "../screen/screen-7.css";@import "../screen/screen-quick-messages.css";@import "../screen/reset-password.css";#xml-data{display:none;}body{font-family:"Helvetica Neue",HelveticaNeue,Helvetica-Neue,Helvetica,sans-serif;}ul{padding:0;}body,section{width:768px;}';
Il fonctionne si je vous écris:
console.log(str.match(/@import\ /g));
Mais comment préciser, toute déclaration @import du tout en une seule ligne, par exemple @import "../screen/screen-1.css";
console.log(str.match(/@import\ .+;/g));
ne fonctionne pas.
Qu'est-ce que vous essayez de remplacer les importations avec? – corriganjc
Quant à la raison pour laquelle votre '. +' "N'a pas fonctionné", le type de "ne fonctionne pas" que je peux penser est qu'il correspond trop, parce que + est gourmand, ce qui signifie qu'il irait à la dernière point-virgule trouvé. L'ajout de '?' À un quantificateur le rend non gourmand - donc '/ @ import \. +?;/G' fonctionnerait. Mais vous pourriez potentiellement avoir des points-virgules dans l'URL, donc la réponse de Tim est évidemment bien meilleure. Je voulais juste expliquer ce qui n'allait pas au cas où cela aiderait une autre fois. Mais soyez aussi précis que possible, cela évite les erreurs. –