Обернуть <ol> в <p> - проблема с многострочностью
Есть необходимость во входных данных формы оборачивать все списки <ol> в тег <p>.
Первоначально попытался это сделать так text = text.replace(/(<ol>.*<\/ol>)/g, '<p>$1</p>'); Так не сработало. Как выснилось, дело в переводах строки, потому что если убрать переносы строки, чтобы код списка был одной строкой, то всё работает. Попытался учесть переводы строки в регекспе text = text.replace(/(<ol>[\s\S].*[\s\S]<\/ol>)/gm, '<p>$1</p>'); Но ничего не изменилось. Сделал простой тест. Вот в этом случае список оборачивается в <p></p> var list = '<ol>'+ '<li>item1</li>'+ '<li>item2</li>'+ '<li>item3</li>'+ '</ol>'; list = list.replace(/(<ol>[\s\S].*[\s\S]<\/ol>)/gm, '<p>$1</p>'); alert(list); а вот в этом нет: var list = '<ol>\n'+ '<li>item1</li>\n'+ '<li>item2</li>\n'+ '<li>item3</li>\n'+ '</ol>'; list = list.replace(/(<ol>[\s\S].*[\s\S]<\/ol>)/gm, '<p>$1</p>'); alert(list); Получается обернуть в <p>, если предварительно удалить символы перевода строки, но такой способ мне не подходит - нарушается логика обработки остального текста. |
$("ol").wrap("<p></p>"); так нельзя? |
WalterScott,
var list = '<ol>\n'+ '<li>item1</li>\n'+ '<li>item2</li>\n'+ '<li>item3</li>\n'+ '</ol>'; list = list.replace(/(<ol>[\s\S]*?<\/ol>)/gm, '<p>$1</p>'); alert(list); |
Цитата:
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 16:08. |