JavaScript中的RegExp过滤器(Angular.js)

时间:2016-04-01 07:09:11

标签: javascript angularjs

我想在Angular.js中自定义过滤器。

如果某个对象有name == null,我会插入" u"到filter->它返回objname == null因为re.test(null)=true,但其他字符返回false。你能告诉我为什么吗?我该如何防止这种情况发生?

1 个答案:

答案 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",当然它也匹配。

演示: http://jsfiddle.net/26fZb/232/