Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.10.2010, 22:36
Новичок на форуме
Отправить личное сообщение для senseysensor Посмотреть профиль Найти все сообщения от senseysensor
 
Регистрация: 15.10.2010
Сообщений: 9

RegExp - поиск в найденном. Не могу понять
Здравствуйте!
что-то не могу понять, как в регулярных выражениях описать поиск в найденном.
Ну то есть имеется URL с GET-запросом, нужно найти (заменить) одну переменную. Можно, конечно, сделать в несколько действий. Но интереснее описать всё за 1 раз.

Вот пишу что-то вроде:
find_var = /(\?.*$)id=[\d]+\1/

То есть внутри URL сначала выделяю весь GET запрос, а потом пытаюсь найти в этом [найденном] запросе найти переменную ID. Что неправильно?
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2010, 01:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от senseysensor
$
это что такое?
зачем вы это вставили в свой регексп?!
если случайно опечаталсиьь, то какого фига задаете вопрос на форуме не проверив свой код на опечатки?
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2010, 03:09
Новичок на форуме
Отправить личное сообщение для senseysensor Посмотреть профиль Найти все сообщения от senseysensor
 
Регистрация: 15.10.2010
Сообщений: 9

Не кипятись.

Видимо я что-то недопонял.
В справочнике (http://javascript.ru/RegExp) написано по поводу знака доллара вот что:
Код:
$ Обозначает конец входных данных.
Если установлен флаг многострочного поиска, то также сработает в конце строки.
Например, /t$/ не найдет 't' в "eater", но найдет - в "eat".
Таким образом я хотел найти часть url от знака вопроса до самого конца.
Что в этом неправильного??

ps - данные для обработки я получаю при помощи location.href

Последний раз редактировалось senseysensor, 17.10.2010 в 03:12.
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2010, 04:04
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от senseysensor
В справочнике (http://javascript.ru/RegExp) написано по поводу знака доллара вот что:
спасибо
я в курсе в отличии от вас, для чего знак доллара применяется
я вас спраишвиваю что он делает в вашем выражении.
или иными словами, скжите:что по повашемму сделает это выражение????
а ничего гноно не сщддаелат
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2010, 06:50
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от senseysensor
от знака вопроса до самого конца
так все, конец уже, а ты после конца еще что-то ищешь, но там нет ничего.

Сообщение от senseysensor
\1
я, кажется, понял, как ты мыслишь, и теперь тоже такую траву хочу). Вот те ссылка: http://realcode.ru/regexptester/ .
Ответить с цитированием
  #6 (permalink)  
Старый 17.10.2010, 16:33
Новичок на форуме
Отправить личное сообщение для senseysensor Посмотреть профиль Найти все сообщения от senseysensor
 
Регистрация: 15.10.2010
Сообщений: 9

Млин мужики ну неужели так сложно ответить вы все профи, а я ламер, я понимаю, но всё же...
Кажется я как нельзя проще обозначил задачу - поиск в найденном, описанный в пределах одного выражения.

можно ли так сделать?
Пожалуйста, если можно, то напишите рабочий вариант - я действительно не могу врубиться, как правильно записать!!!

ps
алгоритм я себе представляю такой:
1. Найти часть URL от знака вопроса до конца строки.
2. В резульате предыдущего поиска найти искомое выражение (в моём случае это id=24).

Я не могу понять, как использовать сивол
(backslash)n
---
Цитата:
Обратная ссылка на n-ю запомненную скобками подстроку
Ответить с цитированием
  #7 (permalink)  
Старый 17.10.2010, 17:33
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

В вашем случае:
<script type="text/javascript">
alert(window.location.search.replace(/\?id=(\w)/, '$1'));  //выведет все что после "?id="
</script>


Искусственный пример:
<script type="text/javascript">
var str = window.location.search +'?id=Procter%20%26%20Gamble'; //в адресную строку искусственно добавлен параметр
var reg = decodeURIComponent(str).replace(/[?&]id=(\d+)/, '$1'); //+декодируем полученные данные
alert(reg)
</script>

Последний раз редактировалось monolithed, 17.10.2010 в 20:02.
Ответить с цитированием
  #8 (permalink)  
Старый 17.10.2010, 19:14
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от monolithed
\?
\? => [?&]
Ответить с цитированием
  #9 (permalink)  
Старый 17.10.2010, 19:49
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от senseysensor
алгоритм я себе представляю такой:
1. Найти часть URL от знака вопроса до конца строки.
2. В резульате предыдущего поиска найти искомое выражение (в моём случае это id=24).
Неправильно. Надо
1. Найти знак вопроса.
2. После знака вопроса пропустить любое количество символов до id=
3. Взять текст после id=
/\?.*?id=(\d+)/
Это применительно к гипотетической строке в вакууме.

Применительно к url
/[?&]id=(\d+)/
Ответить с цитированием
  #10 (permalink)  
Старый 17.10.2010, 21:55
Новичок на форуме
Отправить личное сообщение для senseysensor Посмотреть профиль Найти все сообщения от senseysensor
 
Регистрация: 15.10.2010
Сообщений: 9

Ясно, спасибо всем за помощь
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RegExp - Глобальный поиск c запоминанием р-тов retator Общие вопросы Javascript 1 11.08.2010 22:53
проблема с рекурсией, не могу понять почему скрипт не выходит из неё. Flirer Общие вопросы Javascript 5 24.12.2009 01:01
Предполагается наличие объекта... не могу понять где косяк mp3moto Internet Explorer 3 18.06.2009 04:34
Не могу победить RegExp (exec) The One Общие вопросы Javascript 3 04.01.2009 10:25
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22