2017-01-10 5 views
0

Итак, у меня есть цикл, проходящий через некоторые имена, чтобы проверить, соответствует ли поиск пользователя (переменная «s») одному из имен или нет. Все это отлично работает на любом рабочем столе или ноутбуке, но не работает на iOS или Android. Я знаю, что match() совместим с этими устройствами, как указано в его документации here.JS function match() не работает в iOS или Android. Всегда возвращает null

Вы можете увидеть код в действии here.

Вот мой цикл:

var s = search.val(); 
 
// if s is at least 3 characters 
 
if (3 <= s.length) { 
 
\t doctors.each(function() { 
 
\t \t var $this = $(this), 
 
\t \t name = $this.find('.vca-doctor-name').text().toLowerCase().trim(); 
 

 
\t \t if (null !== name.match(s)) { 
 
\t \t \t $this.parents('.vca-physician-wrapper').fadeIn('fast'); 
 
\t \t } 
 
\t \t else { 
 
\t \t \t $this.parents('.vca-physician-wrapper').fadeOut('fast'); 
 
\t \t } 
 
\t }); 
 

 
\t reset.fadeIn('fast'); 
 
\t $('.vca-physician-wrapper').addClass('float'); 
 
} 
 
else { 
 
\t doReset(); 
 
}

Спасибо за помощь!

ответ

1

Телефоны обычно имеют клавиатуры, которые используют первую букву. На странице показаны совпадения для «bak», но не «Bak».

if (name.match(s.toLowerCase())) { 

Должен сделать трюк.

-1

Я столкнулся с такой ситуацией раньше. Я исправил его, используя явный RegExp. Таким образом, ваш код превратится в: var s = new RegExp(search.val());

+0

Я проверил его, и это не решит проблему OP. Он просто превращает «Бак» в '/ Bak /', который по-прежнему не соответствует «пекарю». –

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

  • Нет связанных вопросов^_^