Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите составить регулярку!!! (https://javascript.ru/forum/dom-window/31295-pomogite-sostavit-regulyarku.html)

Кирюха =) 02.09.2012 09:06

Помогите составить регулярку!!!
 
Всем привет! Уважаемые программисты, помогите составить регулярное выражение...я в них ничего не смыслю пытался разобраться но ничего не получалось...
вот такая примерно такая строка http://mysite.ru/category/tszh+sostoyanie-dorog
Она может принимать значения
http://mysite.ru/category/tszh или
http://mysite.ru/category/tszh+sostoyanie-dorog+politika
Вот алгоритм:
1.обрезаем строку оставляя чать которая выделена жирным
http://mysiyte/category/tszh+sostoyanie-dorog+politika
2.Проверяем в получившейся строке есть ли знак плюс
if(знак + есть){
исполняем пункт алгоритма 3
} else {
записываем получившеюся строку в переменную
}

3.все что кроме знака "+"
tszh+sostoyanie-dorog+politika
записываем в массив.
Ну вот как то так....Задачка конечно не из легких. Очень надеюсь на вашу помощь......

Deff 02.09.2012 09:13

Цитата:

Сообщение от Кирюха =)
3.все что кроме знака "+"

Поакжите, что записываем в массив, - какой вид примет строка, записываемая в массиве

Кирюха =) 02.09.2012 09:20

вот строка tszh+sostoyanie-dorog+politika
а вот записываем в массив
massiv[0] = tszh;
massiv[1] = sostoyanie-dorog;
massiv[2] = politika;

Deff 02.09.2012 09:26

var a0='http://mysite.ru/category/tszh+sostoyanie-dorog';
var a1='http://mysite.ru/category/tszh';
var a2='http://mysite.ru/category/tszh+sostoyanie-dorog+politika';

function TstReplac(str){
  return str.replace(/^.*?\/([^\/]*)$/g,'$1').split("+");
}
alert(TstReplac(a0));
alert(TstReplac(a1));
alert(TstReplac(a2))

Кирюха =) 02.09.2012 09:41

Спасибо большое все работает, вы о5 меня выручили!
Но у меня остался вопрос: как из TstReplac(a0) получить массив вида
massiv[0] = tszh;
massiv[1] = sostoyanie-dorog;

Кирюха =) 02.09.2012 09:43

Т.е. из строки вида tszh,sostoyanie-dorog получить массив?

Deff 02.09.2012 10:06

Кирюха =),
Функция выдаёт именно массив - просто присвойте её переменной

var ArrayA0 = TstReplac(a0)

Кирюха =) 02.09.2012 10:23

точно!Извините за глупый вопрос


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