RegExp: точка == любому символу?
Вот код:
<div id="p1">
<p>текст 1</p>
<div class="s1">
<hr>
<p>текст 2</p>
</div>
</div>
<script>
txt = document.getElementById('p1').innerHTML;
txt = txt.replace(/<div.*?<\/div>/igm, '');
alert(txt);
</script>
Вместо ожидаемого: <p>текст 1</p> получаю: <p>текст 1</p> <div class="s1"> <hr> <p>текст 2</p> </div> Где ошибка, разве точка не соответствует любому символу, включая \n? |
Цитата:
txt = txt.replace(/<div[\s\S]*?<\/div>/ig, ''); |
http://www.webmaster.ee/javascript/J.../RegExpJS.html
"(Десятичная точка) совпадает с любым одиночным символом, исключая символ новой строки. " |
Kolyaj, ZoNT, спасибо!
|
ZoNT, Kolyaj, а почему //gm не присоветовали? ;)
|
e1f,
Может потому что 1. уже был до нас, 2. не помогает? ;) |
[\s\S]
|
(/^.+$/).test('asd\n') //false
(/^.+$/m).test('asd\n') //true
'a\nb'.replace(/./mg, '#') //перенос строки не заменяется
Спасибо, запомним :) UPD Нашел "метод", как обойти это (кошмар!): 'a\nb'.replace(/\n/g,'\uffff').replace(/./g, '#') Взято тут |
| Часовой пояс GMT +3, время: 22:02. |