The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Тематический каталог: Регулярные выражения в Javascript (reg..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Тематический каталог: Регулярные выражения в Javascript (reg..."  +/
Сообщение от auto_topic on 19-Авг-07, 19:17 
Обсуждение статьи тематического каталога: Регулярные выражения в Javascript (regex javascript web)

Ссылка на текст статьи: http://www.opennet.me/base/dev/pcre_javascript.txt.html

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Регулярные выражения в Javascript (regex javascript web)"  +/
Сообщение от gordon82 email on 19-Авг-07, 19:17 
Если вы хотите чтобы последний скрипт (про дату рождения) у вас работал нормально,то лучше посмотрите как он написан на источнике "http://www.pcre.ru/docs/javascript/text/intro2/" в конце страницы. Но и там тож вроде ошибка: вместо
"< br>" нужно писать "
" - без пробела после открывающего символа <.
Что тут неправильно: нет явного обращение к элементам массива, т.е. вместо arr надо писать arr[0], arr[1], arr[2], arr[3] - соответственно выводимому значению.
А коментарий этот написал для того, чтобы начинающие изучать JS как я, смогли  сразу понять ошибки, возникающие при неправильном описании элементов.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "в заключении ошибка"  +/
Сообщение от Busla email on 21-Янв-08, 13:18 
Будьте внимательны (а при случае плюньте автору в лицо): многие вполне корректные адреса e-mail эту проверку не пройдут.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Регулярные выражения в Javascript (regex javascript web)"  +/
Сообщение от zeroglif email on 16-Янв-09, 02:02 
Статья параша, писал дебил малограмотный. Надо юзать прототипы!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Регулярные выражения в Javascript (regex javascript web)"  +/
Сообщение от Eugeneus email on 28-Апр-09, 10:48 
Попробуй сам напиши че-нить достойное, умник. А то вон критиков полстраны, а толку ноль целых ноль десятых.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "form в Javascript "  +/
Сообщение от Karo email on 28-Апр-09, 16:58 
formi v java script
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "поправьте ошибки"  +/
Сообщение от master Zelenkin on 15-Май-09, 02:12 
эй, взаимоуважатели, заместо ругаться, не плодите дезинформацию другим детям, а исправляйте:

/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i

этот регексп нерабочий, причем жёстко.

Дайте ему вот это:

Vasiliy.Lokhankin@my.mail-zanzibar.info

он не примет, а мыло корректное.
а это примет:

----paraboloid@my.Fu@#$%$%^*mail.com=Wrong@!

просто он зацепится не с начала и не до конца строки, да и точка в регекспе выше в среднем []-блоке позволяет быть любым символам, так что ой.

Где-то так, вобщем:

1. во втором блоке так точка не отрицается (если я правильно понял неправильный ход мыслей... sic!) - а если неправильно - то причём там крышка (^)? Отрицается любой символ? Гы. Даже если бы работала эта конструкция (отрицание со средины регекспа), то... Впрочем, "на этом мысль останавливается".

2. Если убрать точку ("всё подряд") в среднем блоке - матч сработает только на доменах 2го уровня. Да и то на 2-3 буквенных в конце (а где инфо? моби? нейм? етц...) - правда, это достаточно свежий апдейт, но от этого регесп не стаёт рабочим.

3. нет ограничения у регекспа по бокам. То есть он может СОВПАСТЬ внутри строки, которая будет окружена мусором.

4. в емейле в имени может быть точка, и точка!

5. с какой радости подчеркивания пошли в домены, и где дефисы в доменах?

т.е. если исправить эти "сам умею сочинил" в "и я сам умею сочинил-2", то выйдет:

/^[0-9a-z\-\._+]+@(?:[0-9a-z\-]+\.)+[a-z]+$/i

но и достоверность этого сомнительна - в RFC сначала надо прочитать стандарты, чем умничать. Например, формат имени в емейле более широкий, чем у домена - и могут быть ещё разрешённые символы (подчеркивание, плюс, ещё что-то, да и то по разным стандартам по-разному).

Кроме того этот регексп не подтвердит правильность емейлов:

"Василий Квасилий" <kvasil@mail.ru>
хотя оно корректно, и
"MyOldMail:<i@be.there>" <big@but.very.small.com>

а вдруг ещё кавычки могут быть вложеные, заслешованые ;-)

так что писать и читать книжечки ещё придётся.

Мудрость, она как и тупость, безгранична - накапливать можно вечно ;).

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Регулярные выражения в Javascript (regex javascript web)"  +/
Сообщение от Сергей email(??) on 26-Авг-09, 12:31 
Автору большое спасибо!
Может что и не так но намного лучше и полней информация чем в некоторых книгах которые читал.
Не нужно критиаовать - нужно советовать и обсуждать.

PS как правело критикуют малограмотные зазнайки ;)
И не надо воспринимать.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Регулярные выражения в Javascript (regex javascript web)"  +/
Сообщение от Николай (??) on 12-Сен-09, 21:53 
Помогите выделить из строчек то, что находится
в <param>, а именно value="http://....."
Надо выделить из строчек несколько разных форматов.

Делаю:
re = /(.+)<param name="movie" value="(http[^><].+?)">(.+)/g;
r = tub.replace(re, "$2");
if (r.indexOf('http') == 0) {
// что-то делаю
}

С первой строкой справляется, а со второй (от вестей) не получается.

А вот строчки:
//<object width="445" height="364"><param name="movie" value="http://www.youtube.com/v/-SRpkznlTH4&hl=ru&fs=1&rel=0&border... name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-SRpkznlTH4&hl=ru&fs=1&rel=0&border... type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed></object>

//vesti.ru
//<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swfl...,0,29,0" width="408" height="356" id="flvplayer" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="movie" value="http://www.vesti.ru/i/flvplayer.swf?vid=243382&autostart=fal... /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="devicefont" value="true" /><param name="bgcolor" value="#000000" /><param name="vid" value="243382" /><embed src="http://www.vesti.ru/i/flvplayer.swf?vid=243382&autostart=fal... quality="high" devicefont="true" bgcolor="#000000" width="408" height="356" name="flvplayer" align="middle" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Регулярные выражения в Javascript (regex javascript web)"  +/
Сообщение от Николай (??) on 13-Сен-09, 10:20 
Помогите выделить из строчек то, что находится
в <param>, а именно value="http://....."
Надо выделить из строчек несколько разных форматов.

Делаю:
re = /(.+)<param name="movie" value="(http[^><].+?)">(.+)/g;
r = tub.replace(re, "$2");
if (r.indexOf('http') == 0) {
// что-то делаю
}

С первой строкой справляется, а со второй (от вестей) не получается.

А вот строчки:
//<object width="445" height="364"><param name="movie" value="http://www.youtube.com/v/-SRpkznlTH4&hl=ru&fs=1&rel=0&border... name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-SRpkznlTH4&hl=ru&fs=1&rel=0&border... type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed></object>

//vesti.ru
//<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swfl...,0,29,0" width="408" height="356" id="flvplayer" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="movie" value="http://www.vesti.ru/i/flvplayer.swf?vid=243382&autostart=fal... /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="devicefont" value="true" /><param name="bgcolor" value="#000000" /><param name="vid" value="243382" /><embed src="http://www.vesti.ru/i/flvplayer.swf?vid=243382&autostart=fal... quality="high" devicefont="true" bgcolor="#000000" width="408" height="356" name="flvplayer" align="middle" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Регулярные выражения в Javascript (regex javascript web)"  +/
Сообщение от Доброжелатель email(??) on 09-Мрт-12, 12:23 
ошибка в "К  примеру,  для  проверки правильности ввода e-mail,
   регулярное  выражение, что для JavaScript, что для PHP будет выглядеть
   одинаково /[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i."

.[a-z]{2,3} - точка соотевтсвует любому символу, надо писать \.
ну и многие корректные адреса не пройдут. К  примеру можно использовать точки в имени например: log.in@почта.info

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру