var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre.*?<\/pre>/gm );
alert(arr); // null
Ich möchte, dass der PRE-Block aufgenommen wird, obwohl er sich über Zeilenumbrüche erstreckt. Ich dachte, die 'm'-Flagge macht es. Nicht.
Hier vor dem Posten die Antwort gefunden . Da ich dachte, ich kenne JavaScript (drei Bücher lesen, Arbeitsstunden) und es bei SO keine Lösung gab, werde ich es trotzdem wagen, etwas zu posten. wirf hier Steine
Die Lösung lautet also:
var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre[\s\S]*?<\/pre>/gm );
alert(arr); // <pre>...</pre> :)
Hat jemand einen weniger kryptischen Weg?
Bearbeiten: Dies ist ein Duplikat, aber da es schwieriger zu finden ist als meins, entferne ich es nicht.
Es wird [^]
als "mehrzeiliger Punkt" vorgeschlagen. Was ich immer noch nicht verstehe ist, warum [.\n]
es nicht funktioniert. Ich denke, dies ist einer der traurigen Teile von JavaScript.