Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Извлечь значение параметра из location.search регулярным выражением? (https://javascript.ru/forum/misc/7260-izvlech-znachenie-parametra-iz-location-search-regulyarnym-vyrazheniem.html)

Бобр 23.01.2010 10:34

Извлечь значение параметра из location.search регулярным выражением?
 
Извлечь значение параметра из location.search регулярным выражением?

В location.search параметры командной строки и их значения. Например: "?act=Post&CODE=02&f=9&t=24&qpid=13832". Можно написать функцию которая извлечёт значение нужного параметра. Но лишние функции загромождают скрипт. Может быть можно сделать тоже самое регулярным выражением в одну строку?

Octane 23.01.2010 11:06

var params = {};
"?act=Post&CODE=02&f=9&t=24&qpid=13832".replace(/(\w+)=(.+?)(&|$)/g, function (substr, key, value) {
    params[key] = value;
});

alert(params.act);
alert(params.qpid);

Бобр 23.01.2010 12:33

Цитата:

Сообщение от Octane (Сообщение 41633)
var params = {};
"?act=Post&CODE=02&f=9&t=24&qpid=13832".replace(/(\w+)=(.+?)(&|$)/g, function (substr, key, value) {
    params[key] = value;
});

alert(params.act);
alert(params.qpid);

А если у меня строка? "act"

Octane 23.01.2010 12:41

не понял, о чем вы

Бобр 23.01.2010 16:13

Допустим пользователь вводит с клавиатуры параметр "act", как найти его значение?

Octane 23.01.2010 16:37

var str = "act";

var params = {};
"?act=Post&CODE=02&f=9&t=24&qpid=13832".replace(/(\w+)=(.+?)(&|$)/g, function (substr, key, value) {
    params[key] = value;
});

alert(params[str]);

так чтоли?

Ну или методом match найдите один параметр:
http://javascript.ru/string/match
http://javascript.ru/regexp

Бобр 24.01.2010 03:45

Спасибо. :)

subzey 25.01.2010 23:24

Цитата:

Сообщение от Octane
params[key] = value

Мне кажется, вернее
params[unescape(key)] = unescape(value)

Octane 26.01.2010 01:01

Зачем key unescap'ить? И тогда уже encodeURIComponent. А еще там регулярка только для конкретного случая.


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