Как я могу использовать это регулярное выражение в выражении angularJs? - PullRequest
0 голосов
/ 31 января 2019

Здесь у меня есть строка с пробелами, и я хотел бы заменить пробел (ы) на одну черту '-'.

var card = "A World Elite Warrior";

console.log("card = " + card.toLowerCase().replace(/ /g,'-'));

Вывод - воин мирового элиты,но я просто хочу использовать его в шаблоне html в качестве выражения angularjs, например:

<img ng-src="images/cards/{{card.toLowerCase().replace(/ /g,'-')}}.png"

И это не может работать, сообщение об ошибке:

Ошибка: [$ parse: syntax] Синтаксическая ошибка: токен '/' не является основным выражением в столбце 61 выражения

1 Ответ

0 голосов
/ 31 января 2019

AngularJS не поддерживает регулярные выражения в представлении.Чтобы обойти это, вы можете написать простой фильтр, чтобы применить замену регулярных выражений.Вот пример того, как вы можете сделать это в вашем случае.

angular.module('app', [])
  .controller('ctrl', function($scope) {
    $scope.card = "A World Elite Warrior";
    console.log("card = " + $scope.card.toLowerCase().replace(/ /g, '-'));
  })
  .filter('dashes', function() {
    return function(input) {
      input = input || '';
      return input.toLowerCase().replace(/ /g, '-');
    }
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  {{ card | dashes }}
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...