Проблема с регулярным выражением
Помогите разобраться в одном паттерне.
задача такая - в тексте есть несколько списков типа <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, время: 09:47. |