var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre.*?<\/pre>/gm );
alert(arr); // null
Я бы хотел, чтобы был поднят блок PRE, даже если он охватывает символы новой строки. Я думал, что флаг «м» делает это. Не.
Нашел ответ здесь перед публикацией. Так как я думал, что знаю 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.