2017-01-10 14 views
0

所以我在下面的循環中檢查用戶搜索的內容(變量「s」)是否與某個名稱匹配。這一切都適用於每臺臺式機或筆記本電腦,但不適用於iOS或Android。我知道match()與這些設備兼容,如其文檔here中所述。JS函數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''變成'/ Bak /',它仍然不符合「麪包師」。 –