Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   RegExp глюк пробелы портят всё (https://javascript.ru/forum/misc/19315-regexp-glyuk-probely-portyat-vsjo.html)

scuter 01.08.2011 20:36

RegExp глюк пробелы портят всё
 
просто не знаю как побороть этот глюк
есть регулярка
var reg=/<|>|"(([^\\"]|\\.)*)"|\$(\w*)|(\w*)/gim;

берём строку
$str='
 
<
		"<",
		<
			<
				!,
';

и соответственно запускаем это дело,
reg.exec(str);

и оно не работает,
но если убрать пробелы и знаки переноса между словами которые ищутся то работает,
и если убрать последнюю часть выражения тоже работает
var reg=/<|>|"(([^\\"]|\\.)*)"|\$(\w*)/gim;

вот что с этим делать не пойму

B@rmaley.e><e 01.08.2011 21:22

Цитата:

Сообщение от scuter
и соответственно запускаем это дело,
reg.exec(str);
и оно не работает,

Что за бред? У вас переменная в php сценарии, а запускаете Вы код на JS.

scuter 01.08.2011 22:05

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 116692)
Что за бред? У вас переменная в php сценарии, а запускаете Вы код на JS.

var str=' \n <\n /</,\n <\n <\n "!",\n "sdfs">,\n ';
var reg=/<|>|"(([^\\"]|\\.)*)"|\$(\w*)|(\w*)/gim;
reg.exec(str);

у меня текст находится в текстовом поле textarea
и жава скриптом вытаскивается, поэтому результат строки может быть разный,
поэтому и написал php-шкой.

B@rmaley.e><e 01.08.2011 22:19

Ваш регэксп работает.
Но последняя его часть соответствует в том числе и пустой строке, которую он успешно находит и выводит в качестве результата.

var str=' \n <\n /</,\n <\n <\n "!",\n "sdfs">,\n '; 
var reg=/<|>|"(([^\\"]|\\.)*)"|\$(\w*)|(\w+)/gim; 
alert( reg.exec(str) );

scuter 01.08.2011 23:19

извиняюсь, я тупой.
понял в чём дело


Часовой пояс GMT +3, время: 00:13.