Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярные выражения (https://javascript.ru/forum/misc/25495-regulyarnye-vyrazheniya.html)

vivalaakam 07.02.2012 13:06

Регулярные выражения
 
Добрый день. помогите с регулярными выражениями

есть строка вида where[0][1][value], количество квадратных скобочек может меняться в зависимости от ситуации, то есть может быть и where[0][value] и where[0], как с помощью регулярного выражения получить "where" (тоже может меняться) и содержимое квадратных скобок.
Пробовал
/(\w+)(?:\[(\w+)\])+/g.exec("where[0][1][value]")
получаю where и последний элемент,
/(\w+)(?:\[(\w+)\])?/g.exec("where[0][1][value]")
на выходе where и 0

poorking 07.02.2012 13:27

var str = "where[0][1][value][42][100500]";
var re = /(\[)?([^\[\]]+)\1?/g;
var result = [];
var m; while (m = re.exec(str) ) {
	result.push(m[2]);
}
			
alert(result);

рони 07.02.2012 14:20

vivalaakam,
Вариант ...
var str = "where[0][1][value][42][100500]";
alert(str.split(/\]\[?|\[/))

Aetae 07.02.2012 17:47

рони,
var str = "where[0][1][value][42][100500]";
alert(str.split(/[\[\]]+/))

рони 07.02.2012 22:07

Aetae,
:yes:

Pavel M. 07.02.2012 22:30

не удержался :-)

var str = "where[0][1][value][42][100500]";
alert(str.match(/\w+/g));

poorking 08.02.2012 09:41

Maxmaxmaximus,
Ну тут любой из приведенных примеров не проверяет входные данные, допущено, что она 100% правильная


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