Javascript 正则表达式应该是什么来匹配角ui网格中的空白单元格?

Javascript 正则表达式应该是什么来匹配角ui网格中的空白单元格?,javascript,angularjs,angular-ui-grid,Javascript,Angularjs,Angular Ui Grid,我有一个有角度的ui网格,其中有一列“note”,可以是空的,也可以是非空的。我试图创建一个自定义过滤器来过滤空白和非空白。我无法过滤掉栏中的空白。该列可能包含null、未定义或“”。所有这些都在ui网格中显示为空白。 注:本栏如下: { displayName: 'Note', enableSorting:true, enableFiltering: true, enableCellEdit: false, width: '10%',

我有一个有角度的ui网格,其中有一列“note”,可以是空的,也可以是非空的。我试图创建一个自定义过滤器来过滤空白和非空白。我无法过滤掉栏中的空白。该列可能包含null、未定义或“”。所有这些都在ui网格中显示为空白。 注:本栏如下:

{
      displayName: 'Note',
      enableSorting:true,
      enableFiltering: true,
      enableCellEdit: false,
      width: '10%',
      field: 'note',
      visible: false,
      filterHeaderTemplate: '<div class="ui-grid-filter-container" ng-repeat=\
      "colFilter in col.filters"><div my-custom-dropdown2></div></div>',
      filter: {
        options: ['Blanks','Non-blanks']     // custom attribute that goes with custom directive above
      } 

.directive('myCustomDropdown2', function() {
  return {
    template: '<select class="form-control" ng-model="colFilter.term" ng-change="filterNotes(colFilter.term)" ng-options="option for option in colFilter.options"></select>',
    controller:'NoteController'
  };
})

.controller('NoteController',function($scope, $compile, $timeout){
  $scope.filterNotes = function(input){
    var field = $scope.col.field;
    var notes = _.pluck($scope.col.grid.options.data,field);
    $scope.colFilter.listTerm = [];
    var temp = notes.filter(function(val){if(val && val!=''){return val}});
    $scope.colFilter.listTerm = temp;
    $scope.colFilter.term = input;
    if(input=='Blanks'){
      $scope.colFilter.condition = new RegExp("[\\b]");
    }
    else{
      //for Non-blanks
      $scope.colFilter.condition = new RegExp($scope.colFilter.listTerm.join('|'));
    }
    console.log("$scope.colFilter.condition",$scope.colFilter.condition);
    // console.log("temp",temp);
  }
})
{
displayName:'注意',
enableSorting:true,
启用筛选:正确,
enableCellEdit:false,
宽度:“10%”,
字段:'注释',
可见:假,
filterHeaderTemplate:“”,
过滤器:{
选项:['Blanks','Non-Blanks']//与上面的自定义指令一起使用的自定义属性
} 
.directive('myCustomDropdown2',function(){
返回{
模板:“”,
控制器:'NoteController'
};
})
.controller('NoteController',函数($scope,$compile,$timeout){
$scope.filterNotes=函数(输入){
变量字段=$scope.col.field;
var notes=\.PULLC($scope.col.grid.options.data,field);
$scope.colFilter.listTerm=[];
var temp=notes.filter(函数(val){if(val&&val!=''){return val});
$scope.colFilter.listTerm=temp;
$scope.colFilter.term=输入;
如果(输入=='Blanks'){
$scope.colFilter.condition=new RegExp(“[\\b]”);
}
否则{
//对于非空白
$scope.colFilter.condition=newregexp($scope.colFilter.listTerm.join(“|”);
}
log($scope.colFilter.condition,$scope.colFilter.condition);
//控制台日志(“temp”,temp);
}
})
我已经尝试过问题中的solutin和更多。没有任何效果。我应该如何创建只匹配空白单元格的正则表达式?

使用
/^(\s)*$/g

\s
元字符匹配字符串中的空白字符。
\s
相当于
[\f\n\r\t\v\u00a0\u1680\u180e\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
,因此它涵盖了空白、制表符、换行符等

^n
量词匹配字符串开头的任何字符组合
n

n$
量词匹配字符串末尾的任何字符组合
n

因此,如果使用
/^\s$/
,您希望字符串只包含一个空格

n*
量词匹配任何包含0个或更多前面的
n
表达式的字符组合

因此,如果您使用
/^(\s)*$/
,您希望字符串应该是空的,或者包含任意数量的空格(但没有其他空格)

我为我的公文包做了一些准备,这样你就可以在那里用大量的默认或你自己的regexp示例和文本示例进行实验

编辑:
g
标志在这里似乎没有必要,我当时写得很匆忙。 因此,您可以使用
/^(\s)*$/
使用
/^(\s)*$/g

\s
元字符匹配字符串中的空白字符。
\s
相当于
[\f\n\r\t\v\u00a0\u1680\u180e\u2000\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
,因此它涵盖了空白、制表符、换行符等

^n
量词匹配字符串开头的任何字符组合
n

n$
量词匹配字符串末尾的任何字符组合
n

因此,如果使用
/^\s$/
,您希望字符串只包含一个空格

n*
量词匹配任何包含0个或更多前面的
n
表达式的字符组合

因此,如果您使用
/^(\s)*$/
,您希望字符串应该是空的,或者包含任意数量的空格(但没有其他空格)

我为我的公文包做了一些准备,这样你就可以在那里用大量的默认或你自己的regexp示例和文本示例进行实验

编辑:
g
标志在这里似乎没有必要,我当时写得很匆忙。
因此,您可以使用
/^(\s)*$/

是否有特定的原因使您希望使用正则表达式来代替DOM函数?(它们通常更适合这种工作)
/^(\s)*$/g
blank的确切含义是什么?可能您需要的是
cell.innerHTML.length==0
。@Pawel blank表示只有空格或null或未定义。正则表达式用于
String
类型,既不用于
null
也不用于
undefined
,如果您的意思是单元格[String]内容可能是
“null”
未定义“
/^((\s)*|null |未定义)$/g
试试这个out@Pawel谢谢../^(\s)*$/g为我工作。您希望使用正则表达式而不是DOM函数的具体原因是什么?(它们通常更适合这种工作)
/^(\s)*$/g
blank的确切含义是什么?可能您需要的是
cell.innerHTML.length==0
。@Pawel blank表示只有空格或null或未定义。正则表达式用于
String
类型,既不用于
null
也不用于
undefined
,如果您的意思是单元格[String]内容可能是
“null”
未定义“
/^((\s)*|null |未定义)$/g
试试这个out@Pawel谢谢../^(\s)*$/g为我工作。我使用了正则表达式,包括null和undefined。谢谢帮助。它节省了大量时间,而且你的regexp教程很棒。我使用了正则表达式,包括null和undefined。谢谢帮助。它节省了大量时间,你的regexp教程很棒。