我想在Angular.js
中自定义过滤器。
如果某个对象有name == null
,我会插入" u"到filter->
它返回obj
,name == null
因为re.test(null)=true
,但其他字符返回false
。你能告诉我为什么吗?我该如何防止这种情况发生?
答案 0 :(得分:0)
在使用regexp进行测试之前,您还需要检查是否还定义了obj.name
:
$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"
,当然它也匹配。