Jump to content
  • 0

. в регулярнов выражении + Opera


NikuZ
 Share

Question

Здравствуйте, вот откопал, на первый взгляд, несерьезный косяк Opera с обработкой класса символов "." в регулярных выражениях. Вообще символ точки в регулярных выражениях означает "любой символ, кроме символа перехода на новую строку". Так вот, в моем редакторе http://www.nikuz.name/galery.html, где проверка строится на регулярных выражениях этот "косячок", послал коту под хвост всю проверку.

А именно:

во входной строке из textarea я заменяю все переходы на новую строку тегом "

". IE и FF обрабатывают все хорошо, а в Opera стоит нажать, при вводе, "Enter" и вся конструкция рушится. (это заметно если вставить сонктрукцию [коде][/коде] НАПИСАЛ РУССКИМИ ЧТОБЫ НЕ РАСПОЗНОВАЛОСЬ КАК УПРАВЛЯЮЩАЯ КОНСТРУКЦИЯ и в ней набрать некоторое количество текста, а затем нажать "Enter"). Хотя в тоже время, по всей видимости Opera заменяет символы перехода на новую строку, т.к. структура введенная в textarea переносится в поле предварительного просмотра (имеется ввиду структура по переходам на новую строку), а не выводится вс? в одну строку. Вот я и думаю... косяк, или же кто-то сталкивался?

На этом форуме в редакторе ведь тоже такие конструкции используются, может Влад и подскажет? Может вообще по другому сделать проверку? :-)

Регулярное выражение просто как божий день:

blockTag=/[code].*?
/;

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

взять в скобки не помогает?

на этом форуме используется проверка на php, а не js, по гораздо более сложному алгоритму, чем сравнение с одним регулярным выражением - ведь code и quote это блоки, которые надо закрывать, а они могут быть не по одному экземпляру в посте, так что вводится счетчик открывающих и закрывающих, затем сравнение количества и сохраняется ли вложенность

Link to comment
Share on other sites

  • 0
...во входной строке из textarea я заменяю все переходы на новую строку тегом "

"

...Регулярное выражение просто как божий день:

blockTag=/

.*?

/;

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

Link to comment
Share on other sites

  • 0
Непонятно то, каким образом это регулярное выражение связано с определенной вами задачей (т.е. замена переходов на новую строку)?

perenos=/n/mg;
text=text.replace(perenos, "
");

А тем регулярным выражением я нахожу конструкции с кодом, повнимательней прочти.

Link to comment
Share on other sites

  • 0
...повнимательней прочти.

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

Однако я не уверен в том, что как-то поможет. Для того, чтобы разобраться, надо знать, к примеру, то, что переносы в Opera - это не ваше /n/mg, а комбинация двух символов 'rn'. Также было бы неплохо разобраться с тем, где и когда необходимо использовать флаг многострочного поиска. Ну и т.д. до "просветления", когда Вам станет понятно, что "косяки" Opera - это не более, чем результат ваших ошибок и просчетов.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy