RegExp + Многострочный текст (\r)
Всем привет.
Возникла проблема при парсинге многострочного текста с \n и \r и т.д Суть в том, что через Ajax PHP приложение шлёт нам текст, в котором переносы, \n \r и т.д Но когда получаю эти данные в JavaScript, то при match у текста в одну строку, всё норм, а у текста в несколько строк вообще не работает. Регулярку делаю так var rex = new RegExp('<b>(.*?)<\/b>',"im"); P.S вроде в регулярке поставил m... толку 0 Если PHP приложение шлёт в таком виде: $TEXT = '<b>Я ОЛОЛОЛО</b>'; то всё нормально. А если PHP приложение шлёт в таком виде: $TEXT = '<b>;lk;lk; l;;jkkj kjlkjjljjlkjklj</b>'; то match у JavaScript усирается каллавыми массами. |
/<b>([\s\S]*?)<\/b>/ |
Нет не работает вообще)
|
Работает.
|
FreePaint, в строке нельзя использовать переносы строк. Заменяйте их на \n или экранируйте их.
|
Цитата:
|
B@rmaley.e><e, у него ведь из PHP код в JS выводится.
|
Цитата:
Спасибо всем за советы, да пребудет с Вами сила !!! |
Сделал так, не стал в ПХП убирать переносы, а уже в самом JavaScript, в полученном тексте сразу сделал replace(/\r\n/g,'')
|
exec, \n это и есть переносы строк.
Если же вы имели в виду, что делать что-то вроде Код:
alert('<?php Цитата:
alert('<b>trololo\r\nololo</b> <b>trololo\r\nololo</b>'.match(/<b>([\s\S]*?)<\/b>/i)[1]) И еще: при задании регулярки через new RegExp не забывайте экранировать слеши в строке. |
:blink:
alert(' '); |
exec,
Цитата:
|
Ну так у меня заработало только когда я в полученном тексте заменил все \r\n :) Лично я другого выхода не нашёл....
|
exec,
alert('qwe\ asd\ zxc'); ты это хотел что-ли? |
Gvozd, ну да.
|
args.replace(/[\r\n]/g," ") заменяет в args все переводы строк. На выходе получаем одну строку.
|
Часовой пояс GMT +3, время: 17:40. |