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, время: 23:18. |