javascript - 如何将 string match() 与 angularJs $scope.search 变量一起使用

标签 javascript regex angularjs match

我尝试使用字符串匹配忽略大小写敏感和我的输入$scope.search变量,但它不起作用。

<input type="text" ng-model="search" autofocus="autofocus">




angular.forEach(groups, function(group, key) {

   console.log(group); // => Object contains

    if (group.label.match(/($scope.search)/i)) {
      result[key] = group;
    }

});

数据对象组:

Object { label: "Transfiguration", articles: Array[1] }

如何正确使用group.lable.match()$scope.search

非常感谢。

最佳答案

您的正则表达式是动态的,因此您不能使用 /regexp/ 语法。您需要创建一个 Regexp相反,对象。

angular.forEach(groups, function(group, key) {
    console.log(group); // => Object contains

    if (group.label.match(new RegExp("(" + $scope.search + ")", "i"))) {
      result[key] = group;
    }
});

您也可以从正则表达式中删除括号。

最好也使用 test()因为您对结果不感兴趣:

if(new RegExp($scope.search, "i").test(group.label)) {

最后,如果这是基本搜索,请将两个部分都小写并使用 indexOf应该更有效率:

if (group.label.toLowerCase().indexOf($scope.search.toLowerCase()) > -1) {

关于javascript - 如何将 string match() 与 angularJs $scope.search 变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27780976/

相关文章:

javascript - JS 对数组进行排序

python - 将字符串分段成数组,正则表达式?

Javascript:测试正则表达式并在一行中匹配时分配给变量

javascript - 从 JSON 访问数字属性

javascript - 将对象函数传递给对象构造函数

javascript - jquery 每个循环的随机元素 id

javascript - 如何检测正则表达式是否有匹配项?

javascript - 如何在 AngularJs 中启用 CORS

angularjs - Ionic/Angular JS - 使用 ngCordova 相机插件选择图片后显示图片

javascript - AngularJS $http 对象不显示响应中的所有 header