Проблема с регулярным выражением
Помогите разобраться в одном паттерне.
задача такая - в тексте есть несколько списков типа <ul>...</ul> нужно все их заменить на <div><ul>...</ul></div> но паттерн /\<ul\>([\s\S]*)\<\/ul\>/gim почему-то не срабатывает, вставляя <div></div> только один раз. много вариантов перепробывал - не могу понять где недочет в паттерне :-? текст примера: <html> <head> <script language="JavaScript"> function changeTxt() { var str = document.getElementById('txt').value; document.getElementById('txt').value = str.replace(/\<ul\>([\s\S]*)\<\/ul\>/gim, '<div style="padding-left:10px"><ul>$1</ul></div>'); } </script> </head> <body> <textarea id="txt" rows="15" cols="50" > <ul> <li>one</li> <li>two</li> <li>three</li> </ul> <ul> <li>one</li> <li>two</li> <li>three</li> </ul> </textarea> <input type='button' value='Run RegExp' onClick="changeTxt();"> </body> </html> |
Почитай про жадность в regexp-ах. Вот здесь вроде нормально расписано.
|
/\<ul\>([\s\S]*?)\<\/ul\>/ |
наконец-то нашел решение ! не хватало одного знака вопроса :)
вот верный паттерн: /\<ul\>([\s\S]*?)\<\/ul\>/gim Riim, спасибо за наводку |
Триви опередил :)
|
Часовой пояс GMT +3, время: 01:08. |