2010-02-03 1 views
3

У меня есть куча элементов с именами, похожими на «comp [1] .Field» или «comp [3] .AnotherField», где изменяется индекс (1 или 3). Я пытаюсь извлечь индекс из имени.Простое регулярное выражение для извлечения содержимого между квадратными скобками в jQuery

Сейчас я использую:

var index = $(":input:last").attr("name").match(/\[(\d+)\]/)[1]; 

, но я не чувствую, что это лучший способ сделать это.

Любые предложения?

Благодаря

+0

Это выглядит довольно хорошо для меня! – nickf

ответ

2

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

пример:

var index = $(":input:last").attr("name").match(/\[(\d+)\]/); 
if (match) { index = match[1]; } 
else { /* no match */ } 
+0

Отличный улов. Спасибо – sdr

+0

Еще одна проблема: если $ (": input: last") ничего не выбирает, тогда .attr ("name") будет неопределенным, и .match выйдет из строя. – sdr

+0

Также верно ... осознанность поднята :) – glomad

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