Ich brauche einen Filter, um alle Unterstriche durch Leerzeichen in einer Zeichenfolge zu ersetzen
string.replace
akzeptiert nicht nur String als erstes Argument, sondern auch Regex als erstes Argument. Setzen Sie also _
innerhalb der regulären Begrenzungszeichen /
und fügen Sie auch den Modifikator g
hinzu. g
wurde globaler Modifikator genannt, der die Ersetzung global übernimmt.
App.filter('underscoreless', function () {
return function (input) {
return input.replace(/_/g, ' ');
};
});
Hier ist eine generische Ersatzfilter-Alternative
App.filter('strReplace', function () {
return function (input, from, to) {
input = input || '';
from = from || '';
to = to || '';
return input.replace(new RegExp(from, 'g'), to);
};
});
Verwenden Sie es wie folgt in Ihrem HTML-Code:
{{ addText | strReplace:'_':' ' }}
Kleiner Hinweis: Bei HTML-Tags im Parameter to
schlägt der Ausdruck aufgrund der Angular-Inhaltssicherheitsregeln fehl.
In einigen Fällen können Sie die Funktion split()
verwenden.
. replace-Funktion entspricht nicht der regulären Ausdruckssyntax (d. h. .replace(/,/g,'\n')
-Syntax)
Vollständige Syntax:{{myVar.toString().split(',').join('\n')}}
.toString()
Funktion für den Fall, dass myVar in TypeScript nicht als String eingegeben wird.
Diese einfache Funktion kann es tun:
public getCleanedString(cadena) {
cadena = cadena.replace(/_/g, ' ');
return cadena;
}