Помогите пожалуйста с JS

S
На сайте с 03.07.2009
Offline
41
385

Подскажите пожалуйста.

Суть проблемы:

в яваскрипте получаю строку вида: red[100223][9399999]

часть строки red не меняется, а вот числа в квадратных скобках разные в зависимости от места вызова функции.

Вопрос: как мне в переменную var a поместить содержимое первых квадратных скобок, а в переменную var b содержимое вторых скобок.

Была идея выловить содержимое регуляркой, но может есть более простой путь?

Заранее благодарен за помощь.

Кодинг на PHP. Разработка расширений под Joomla.
siv1987
На сайте с 02.04.2009
Offline
427
#1

Более простой путь чем регуляркой я даже не знаю.

bay_ebook
На сайте с 28.05.2010
Offline
111
#2
siv1987:
Более простой путь чем регуляркой я даже не знаю.

все относительно :) для одного - регулярка просто, для второго - страх небесный :)

Как вариант:


var str = 'red[100223][9399999]';
str = str.split('['); var a = str[1].split(']').join('');
var b = str[2].split(']').join('');

но это еще вопрос где проще :)

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

Я больше к регэкспам склоняюсь.

Подпись))
S
На сайте с 03.07.2009
Offline
41
#4

bay_ebook, благодарю!

☝ отличное, рабочее решение.

iqmaker
На сайте с 17.04.2012
Offline
309
#5

Чем регулярные выражения не угодили, по моему больше контроля:


var matches = "red[100223][9399999]".match(/red\[(\d+)\]\[(\d+)\]/);
var a = matches[1];
var b = matches[2];
siv1987
На сайте с 02.04.2009
Offline
427
#6
bay_ebook:
но это еще вопрос где проще

var matches = "var[1212][1212]".match(/^var\[(\d+)\]\[(\d+)\]/);

S
На сайте с 03.07.2009
Offline
41
#7

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

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий