var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre.*?<\/pre>/gm );
alert(arr);     // null

I’d want the PRE block be picked up, even though it spans over newline characters. I thought the ‘m’ flag does it. Does not.

Found the answer here before posting. SInce I thought I knew JavaScript (read three books, worked hours) and there wasn’t an existing solution at SO, I’ll dare to post anyways. throw stones here

So the solution is:

var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre[\s\S]*?<\/pre>/gm );
alert(arr);     // <pre>...</pre> :)

Does anyone have a less cryptic way?

Edit: this is a duplicate but since it’s harder to find than mine, I don’t remove.

It proposes [^] as a “multiline dot”. What I still don’t understand is why [.\n] does not work. Guess this is one of the sad parts of JavaScript..

8 Answers
8

Leave a Reply

Your email address will not be published. Required fields are marked *