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, ' ') }}
Я надеюсь, что это может помочь в простом изменении, если вы хотите изменить в других местах, используйте фильтр.