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 ..