Cómo utilizar JavaScript regex sobre varias líneas?


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

Me gustaría que el bloque PRE se recogiera, a pesar de que se extiende sobre los caracteres de nueva línea. Pensé que la bandera " m " lo hace. No lo hace.

Encontró la respuesta aquí antes de publicar. Ya que pensé que sabía JavaScript (leer tres libros, horas trabajadas) y no había una solución existente en TAN, me atrevería a publicar de todos modos. lanza piedras aquí

Así que la solución es:

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

¿Alguien tiene una forma menos críptica?

Editar: esto es un duplicado pero como es más difícil de encontrar que el mío, no lo quito.

Se propone [^] como un "punto multilínea". Lo que todavía no entiendo es por qué [.\n] no funciona. Supongo que esta es una de las partes tristes de JavaScript..


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52