Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Регулярные выражения ? (https://javascript.ru/forum/jquery/2947-regulyarnye-vyrazheniya.html)

grusha 02.03.2009 19:51

Регулярные выражения ?
 
Есть такая строка

vote(2,23,1,'2750ee0fc11',-10)

Хотелось бы узнать как можно разделить её чтобы я мог обратиться к каждой переменной.
Код:

$a = 2
$b = 23
$c = 1
$d = 2750ee0fc11
$e = -10

Т.е. в этоге мне нужно получить такую строку

Код:

var mylink= "link=" + $a + "&id=" + $b + "&user=" + $c + "&md5=" + $d + "&value=" + $e;
Заранее благодарен.

Kolyaj 02.03.2009 20:38

Ход конем :)
function vote(a, b, c, d, e) {
    return "link=" + a + "&id=" + b + "&user=" + c + "&md5=" + d + "&value=" + e;
}

var str = "vote(2,23,1,'2750ee0fc11',-10)";
var mylink = eval(str);

grusha 02.03.2009 21:27

Цитата:

Сообщение от Kolyaj (Сообщение 13444)
Ход конем :)

:) в принципе работает , но это не то что мне надо...
Так как мне надо добавить в функцию еще пару значений.
т.е. функция будет примерна такая

function vote(a, b, c, d, e, value1 , value2) {
return "link=" + a + "&id=" + b + "&user=" + c + "&md5=" + d + "&value=" + e;
}

Было бы даже лучше , получить так же значение vote , т.е.

строка может быть
vote(2,23,1,'2750ee0fc11',-10)
а может
unvote(2,23,1,'2750ee0fc11',-10)

и если начинается с vote то будет работать одна функция , а если unvote то другая.
Но это конечно в идеале , а так мне бы очень помогло , хотя бы то что я написал в первом посте.

x-yuri 02.03.2009 21:32

а откуда вообще берется эта "vote(2,23,1,'2750ee0fc11',-10)" ?

grusha 02.03.2009 22:28

Цитата:

Сообщение от x-yuri (Сообщение 13453)
а откуда вообще берется эта "vote(2,23,1,'2750ee0fc11',-10)" ?

Переменная приходит именно в таком виде, конечно можно было бы изменить код откуда приходит переменная , но в данном случае это сделать нельзя :(

x-yuri 02.03.2009 22:57

1.откуда? Если от пользователя, то стоит задуматься над использованием eval
2. какие типы параметров могут быть? Может в строке присутствовать запятая? Строки могут быть ограничены только одинарными кавычками?

Kolyaj 02.03.2009 23:15

Цитата:

Сообщение от x-yuri
Если от пользователя, то стоит задуматься над использованием eval

Это же был ход конем :) я бы так делать не стал. А в каких случаях ты задумываешься над eval? И чем он опасен, если данные вводит пользователь?

grusha 02.03.2009 23:25

Цитата:

Сообщение от x-yuri (Сообщение 13471)
1.откуда? Если от пользователя, то стоит задуматься над использованием eval
2. какие типы параметров могут быть? Может в строке присутствовать запятая? Строки могут быть ограничены только одинарными кавычками?

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

x-yuri 02.03.2009 23:46

1. как эта переменная попадает в vote.php? от пользователя (через параметры запроса)?
2. какие типы параметров могут быть? Может в строке присутствовать запятая? Строки могут быть ограничены только одинарными кавычками?

Цитата:

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

grusha 02.03.2009 23:53

Цитата:

Сообщение от x-yuri (Сообщение 13475)
1. как эта переменная попадает в vote.php? от пользователя (через параметры запроса)?
2. какие типы параметров могут быть? Может в строке присутствовать запятая? Строки могут быть ограничены только одинарными кавычками?


можно, но если данные приходят не от пользователя - то проще без регулярных выражений

Данные приходят не от пользователя.
Выражение всегда такое
vote(2,23,1,'2750ee0fc11',-10)
меняются только цифры.
Вообще это счетчик голосования за статью , как на сайте Digg.com (кнопка digg it).


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