Angular фильтр для замены всех подчеркиваний на пробелы

Мне нужен фильтр для замены всех подчеркиваний на пробелы в строке

Ответы

Ответ 1

string.replace не только принимает строку как первый аргумент, но также принимает выражение в качестве первого аргумента. Поэтому поставьте _ в разделители регулярных выражений / и добавьте модификатор g вместе с этим. g называется глобальным модификатором, который будет выполнять глобальную замену.

App.filter('underscoreless', function () {
  return function (input) {
      return input.replace(/_/g, ' ');
  };
});

Ответ 2

Здесь общий вариант альтернативы замены

App.filter('strReplace', function () {
  return function (input, from, to) {
    input = input || '';
    from = from || '';
    to = to || '';
    return input.replace(new RegExp(from, 'g'), to);
  };
});

Используйте его в своем HTML:

{{ addText | strReplace:'_':' ' }}

Незначительное примечание: любые HTML-теги в параметре to приведут к тому, что выражение будет терпеть неудачу из-за правил безопасности содержимого Angular.

Ответ 3

Эта простая функция может сделать это:

public getCleanedString(cadena) {
    cadena = cadena.replace(/_/g, ' ');
    return cadena;
  }

Ответ 4

В некоторых случаях вы можете использовать функцию split().
Функция .replace не соответствует синтаксису регулярных выражений (т.е. синтаксис .replace(/,/g,'\n'))

Полный синтаксис:
{{myVar.toString().split(',').join('\n')}}

Функция .toString() используется в том случае, если myVar не напечатан как String в машинописи.

Ответ 5

Существует более простой метод:

Вы можете заменить его встроенным без определенного фильтра. Это способ.

В этом примере его можно заменить только в представлении.

{{ value.replace(/_/g, ' ') }}

Я надеюсь, что это может помочь в простом изменении, если вы хотите изменить в других местах, используйте фильтр.