Мне нужен фильтр для замены всех символов подчеркивания на пробелы в строке.
Угловой фильтр для замены всех символов подчеркивания на пробелы
Ответы:
string.replace
не только принимает строку в качестве первого аргумента, но также принимает регулярное выражение в качестве первого аргумента. Поэтому поместите _
в разделители регулярных выражений /
, а также добавьте модификатор g
вместе с этим. g
называется глобальным модификатором, который будет выполнять замену глобально.
App.filter('underscoreless', function () {
return function (input) {
return input.replace(/_/g, ' ');
};
});
Вот универсальная альтернатива фильтру замены
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.
App
здесь представляет объект, который вы получаете в результате создания своего приложения Angular следующим образом: var App = angular.module('myApp', ['some-dependency', 'some-other-dependency']);
22.01.2019 В некоторых случаях вы можете использовать функцию split()
.
Функция .replace не совместима с синтаксисом регулярного выражения (например, синтаксисом .replace(/,/g,'\n')
).
Полный синтаксис:{{myVar.toString().split(',').join('\n')}}
.toString()
используется в случае, если myVar не набирается как String в машинописном тексте.
Эта простая функция может сделать это:
public getCleanedString(cadena) {
cadena = cadena.replace(/_/g, ' ');
return cadena;
}
Есть более простой метод:
Вы можете заменить его встроенным без определенного фильтра. Это способ.
Этот пример предназначен для замены только в представлении.
{{ value.replace(/_/g, ' ') }}
Я надеюсь, что это может помочь в простом изменении, если вы хотите изменить в большем количестве мест, используйте фильтр.
syntax Error: Token '/' not a primary expression
. 09.05.2018 это я использовал в angularjs 1.4.7
<li ng-show="filter.degree.length">
<label>Search by Degree :- </label> {{
filter.degree.toString().split('|').join(', ')
}}
</li>
input
не является строкой или еслиinput
имеет значение null или не определено. 16.10.2015