【发布时间】:2010-12-31 02:16:56
【问题描述】:
var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre.*?<\/pre>/gm );
alert(arr); // null
我希望 PRE 块被拾取,即使它跨越换行符。我认为'm'标志可以做到这一点。没有。
在发帖前找到答案here。因为我认为我知道 JavaScript(阅读三本书,工作时间)并且在 SO 没有现有的解决方案,所以我还是敢于发布。 在这里扔石头
所以解决办法是:
var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre[\s\S]*?<\/pre>/gm );
alert(arr); // <pre>...</pre> :)
有没有人有不那么神秘的方法?
编辑:this 是重复的,但因为它比我的更难找到,所以我不删除。
它建议[^] 作为“多行点”。我仍然不明白为什么[.\n] 不起作用。猜猜这是 JavaScript 的可悲部分之一..
【问题讨论】:
-
一个不那么神秘的正则表达式?自然不可能。
-
顺便说一句,您应该阅读:“解析 Html:克苏鲁之道”codinghorror.com/blog/archives/001311.html
-
链接从之前的评论更改:blog.codinghorror.com/parsing-html-the-cthulhu-way(5 年后)
标签: javascript regex