Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения, переделать алгоритм на JS 
:(
    Опции темы
motorway
  Дата 25.7.2010, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Хочу переделать регулярку с PHP на JS, подскажите, есть ли быстрый способ это сделать, может, в JS уже есть аналог этой функции:
Код

$mas = array(
array('/(http:\/\/)(www\.|)(site1\.)(net|ru)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 5),
array('/(http:\/\/)(www\.|)(site2\.)(ru|com)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 5),
array('/(http:\/\/)(www\.|)(site3\.)(ru|com)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 5),
array('/(http:\/\/)(www\.|)(site4\.)(ru|com)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 5),
array('/(http:\/\/)(www\.|)(.*?\.|)(site5\.)(ru|net)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 6),
array('/(http:\/\/)(www\.|)(site6\.)(ru|net)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 5),
array('/(http:\/\/)(www\.|)(site7\.)(ru|com)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 5),
array('/(http:\/\/)(www\.|)(site8\.)(ru|com)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 5),
array('/(http:\/\/)(www\.|)(site9\.)(ru|net)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 5),
array('/(http:\/\/)(www\.|)(site10\.ru)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 4),
array('/(http:\/\/)(www\.|)(site11\.ru\/site12)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 4),
array('/(http:\/\/)(www\.|)(site12\.ru)(\/.*?)[\'"\n<\s\]\[]+/i', 1, 4)
);

foreach ($mas as $m)
{
$c=array();
preg_match_all($m[0], $b, $c);
};


Собственно, основное здесь - это preg_match_all, как сделать ее аналог. Или есть способ без использования регулярок? Может, можно сделать аналог на основе рассмотрения того, что делает эта регулярка? Кто-то может пояснить?
PM MAIL   Вверх
skyboy
Дата 25.7.2010, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



регулярки должны быть перенесены в javascript практически без изменений.
вместо foreach можно использовать for(... in ...), либо for(i= 0; i< arr.length; i++)
Цитата(motorway @  25.7.2010,  19:27 Найти цитируемый пост)
preg_match_all, как сделать ее аналог

String.match с  ключом "g"
в чем сложность-то? не сталкивался раньше с javascript?
PM MAIL   Вверх
motorway
Дата 25.7.2010, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Скорее, не слишком шарю в регулярках. Правильно ли я понял, что они извлекают из документа все ссылки, которые начинаются с такого-то домена? Ни больше, ни меньше.
И как потом проверить, куда они поместились? var_dump($matches)?
Вот нашел пример для Яваскрипта:
Код

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);
document.write(matches_array);

Как сюда приделать этот массив регулярок?
Насколько я понял, там в цикле сравнивается для каждой из них или как-то сразу для всех проверяет? Я к тому, что нужно ли делать здесь для regexp тоже массив или это только одна строка в каждом случае?

Это сообщение отредактировал(а) motorway - 25.7.2010, 23:21
PM MAIL   Вверх
motorway
Дата 26.7.2010, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Ну или я могу попробовать сделать без регулярок, если кто-то подскажет, что в точности они делают здесь
PM MAIL   Вверх
skyboy
Дата 27.7.2010, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



если они работают как надо, зачем тебе разбираться с их внутренним устройством? они должны работать точно так же и под js
PM MAIL   Вверх
motorway
Дата 27.7.2010, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: нет
Всего: 0



Я пока не понял, какой код нужно написать, чтобы они работали так же. Ну и хотя бы понять смысл выполняемого ими действия
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0764 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.