Какой-либо способ сделать jQuery.inArray () нечувствительным к регистру?

Заголовок подводит итог его.

32
задан hakre 9 September 2013 в 12:51
поделиться

4 ответа

Вы можете использовать каждый () ...

// Iterate over an array of strings, select the first elements that 
// equalsIgnoreCase the 'matchString' value
var matchString = "MATCHME".toLowerCase();
var rslt = null;
$.each(['foo', 'bar', 'matchme'], function(index, value) { 
  if (rslt == null && value.toLowerCase() === matchString) {
    rslt = index;
    return false;
  }
});
23
ответ дан 27 November 2019 в 20:33
поделиться

Нет. Вам придется возиться со своими данными, я обычно делаю все свои строки строчными буквами для облегчения сравнения. Также существует возможность использования настраиваемой функции сравнения, которая будет выполнять необходимые преобразования, чтобы сделать сравнение нечувствительным к регистру.

1
ответ дан 27 November 2019 в 20:33
поделиться

может пройти через массив и toLower каждый элемент и toLower то, что вы ищете, но в этот момент вы можете просто сравнить это вместо использования inArray ()

1
ответ дан 27 November 2019 в 20:33
поделиться

Похоже, вам, возможно, придется реализовать собственное решение этой проблемы. Здесь - хорошая статья о добавлении пользовательских функций в jQuery. Вам просто нужно будет написать пользовательскую функцию для цикла и нормализации данных, а затем сравнить.

1
ответ дан 27 November 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: