2017-01-10 8 views
0

したがって、以下のループでいくつかの名前を調べて、ユーザーが検索したもの(変数 "s")が名前の1つに一致するかどうかを確認します。これはすべてのデスクトップやノートパソコンでうまく動作しますが、iOSやAndroidでは動作しません。私はmatch()がドキュメントhereに記載されているようにこれらのデバイスと互換性があることを知っています。iOSやAndroidでは、JS関数のmatch()が機能していません。常にnullを返します

コードが表示されます。ここで

は私のループは次のとおりです。助けを

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 /"に変えても、 "Baker"とはまだ一致しません。 –

関連する問題