var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre.*?<\/pre>/gm );
alert(arr); // null
我想让PRE块被选中,即使它跨越了换行符。我以为'm'标志可以实现这一点,但事实并非如此。
在发布这篇文章之前,我在这里找到了答案。尽管我读了三本JavaScript书籍并且工作了数小时,但由于SO上没有现成的解决方案,我还是敢于发布。 请勿抛石头
因此,解决方案如下:
var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre[\s\S]*?<\/pre>/gm );
alert(arr); // <pre>...</pre> :)
有没有更简单易懂的方法?
编辑:这篇回答是一个重复的问题,但因为它比我的难以找到,所以我不会删除。
它提出[^]作为“多行点号”的解决方案。 我还是不明白为什么[.\n]不能工作。 猜测这就是JavaScript的悲哀之一..