2012-05-28 6 views
2

У меня есть ряд строк add[0][types], add[0][name] и т. Д. (Для создания массива с формой PHP $ _POST).Приращивание числа в середине строки

Мне нужно вытащить [0] и сделать его [1].

Я построил функцию регулярных выражений, основываясь на некоторых других ответы, но это не меняет атрибут, я не уверен, что если мой синтаксис функции правильно:

newrow.find('input, select').each(function(){ 
    $(this).attr('name', function(i, val){return val.replace(
    /\\d+/, function(n){ return ++n; }); 
    }); 
}); 

ответ

6

Я думаю, что ваше регулярное выражение немного выкл. И вы можете сократить свой код, удалив .each в пользу перегрузки attr, которая принимает функцию (которую вы уже используете, немного по-другому):

newrow.find('input, select').attr('name', function(i, val) { 
    return val.replace(/\d+/, function(n) { 
     return ++n; 
    }); 
}); 

Пример:http://jsfiddle.net/hDELW/1/

+0

+1, однако OP также использует эту функцию как второй аргумент 'attr', и проблема была в основном неправильным регулярным выражением. – VisioN

+0

@VisioN: Вправо (я уточню), но он/она не использует тот факт, что его можно использовать вместо '.each' –

Смежные вопросы