如何使用angular js比较两个字符串而不考虑小写和大写

how to compare two string regardless of lowercase and uppercase using angular js

  1. 您好,我需要比较两个字符串,不管字母大小写如何 (uppercase/lowercase)。

            <tr ng-repeat="x in vm.partners">
               <td ng-if = "'vm.partner.name' === 'vm.partners.name'" 
                   colspan="2">{{ x.name }}</td>
               <td ng-if = "'vm.partner.name' === 'vm.partners.name'" 
                   colspan="2">{{ x.contact.city.name }}</td>
            </tr>
    
  2. 我想检查 (vm.partner.name) 和 (vm.partners.name) 两个字符串在和模式上是否相同。

  3. 我想保留正则表达式模式,所以请告诉我如何做到这一点。

正如评论中提到的,您可以对变量使用 toLowerCase 并进行检查。无需过滤器或任何需要的东西。

<td ng-if = "vm.partner.name.toLowerCase()== vm.partners.name.toLowerCase()">

注意:不要像您在代码中那样将 vm.partner.name 作为字符串。

  1. 像vertika建议的那样使用toLowerCase()
  2. 在控制器上创建一个函数以保持 html 中的 ng 代码更清晰。
  3. Show/Hide 整行而不是 showing/hiding 每个单元格。

<table ng-app="myApp" ng-controller="HomeCtrl as vm">
  <tr ng-repeat="partner in vm.partners" ng-show="vm.isPartner(partner.name)">
    <td>{{partner.name}}</td>
    <td>{{partner.city}}</td>
  </tr>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<script>
angular.module('myApp', [])
.controller('HomeCtrl', function() {
  let vm = this;
  vm.partners = [
    {
      name: 'John',
      city: 'Los Angeles',
    },
    {
      name: 'Jim',
      city: 'Las Vegas',
    },
    {
      name: 'Joe',
      city: 'Dallas',
    },
  ];
  
  vm.partner = {
    name: 'jim',
  };
  
  vm.isPartner = function(name) {
    return vm.partner.name.toLowerCase() === name.toLowerCase();
  };
});
</script>