2016-04-01 13 views
1

Angular.jsでカスタムフィルタに設定したいと思います。JavaScript(Angular.js)のRegExpフィルタ

オブジェクトがname == nullを持っている、と私はfilter->に「U」を挿入する場合には、それがどのname == nullre.test(null)=trueので、objを返しますが、他の文字はfalseに戻ってきています。なぜか教えてくれますか?どうすればこの事件を防ぐことができますか?あなたはobj.nameも正規表現でそれをテストする前に定義されているかどうかを確認する必要が

+0

これはカスタムフィルタへのURLは次のとおりです。http://jsfiddle.net/fredrik/26fZb/1/ –

答えて

0

$scope.searchFilter = function(obj) { 
    var re = new RegExp($scope.searchText, 'i'); 
    return !$scope.searchText || (obj.name && re.test(obj.name)) || re.test(obj.age.toString()); 
}; 

はそうでない場合は、文字列型にキャストnull"null"をもたらし、それはもちろんマッチしています。

デモ:http://jsfiddle.net/26fZb/232/