2013-03-30 2 views
1

У меня отсортированный массив содержит данные фиксированной длины. Массив следующий:Извлечение записи из массива без чувствительности к регистру

var samplearray = [12122013Sample1, 
        12122013sam 1.5, 
        10122013sample1 

       ]; 

Из этого массива я хочу, чтобы записи соответствовали «Sample1». То есть должны быть возвращены следующие записи:

12122013Sample1 
10122013sample1 

С учетом чувствительности к регистру. Является ли это возможным?

+0

В вашем 'sampleaArray', вы имеете в виду для элементы в массиве должны быть строками? Прямо сейчас, определение данных, которое вы показываете, просто вызовет ошибку. – jfriend00

ответ

2

Использование равнину яваскрипт и предполагая, что вы имели в виду для данных в массиве, чтобы быть строки:

var samplearray = ["12122013Sample1", 
        "12122013sam 1.5", 
        "10122013sample1"]; 

var matches = [], re = /sample1/i; 
for (var i = 0; i < samplearray.length; i++) { 
    if (re.test(samplearray[i])) { 
     matches.push(samplearray[i]); 
    } 
} 

Работа демо: http://jsfiddle.net/jfriend00/WvSFz/

+0

Большое вам спасибо за ваш ценный ответ. Я хочу знать что-то, основанное на этой функции. В этой функции вы используете (re =/sample1/i) this..That означает, что вы используете данные напрямую, чтобы назначить «var re ". Я хочу хранить данные в одной переменной, а затем использовать эту переменную для назначения переменной var var. Можно ли сделать ???? – user1800105

+0

@ user1800105 - Вы можете статически объявлять регулярное выражение как 're =/sample1/i;' или вы можете динамически построить один запуск с переменной, такой как 're = new RegExp (str," i ");'. Либо это сработает. Последнее полезно, если данные для строки находятся в переменной и не известны заранее. Для получения дополнительной информации см. Страницу [MDN на RegExp] (https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions). – jfriend00

+0

o..Спасибо u так много .... – user1800105

0

Используйте регулярное выражение для проверки элементов в массиве и использовать $.map для фильтрации массиву

var s = $.map(samplearray, function(v, i){ 
    if((/sample/i).test(v)){ 
     return v; 
    } 
}) 

Демо: Fiddle

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