web-dev-qa-db-fra.com

Filtre angulaire à remplacer tous les traits de soulignement des espaces

J'ai besoin d'un filtre pour remplacer tous les traits de soulignement d'espaces dans une chaîne 

21
Ayeye Brazo

string.replace accepte non seulement la chaîne en tant que premier argument, mais également regex en tant que premier argument. Mettez donc _ dans les délimiteurs d'expression régulière / et ajoutez également le modificateur g avec cela. g appelé modificateur global qui effectuera le remplacement globalement.

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

Voici une alternative générique au filtre de remplacement

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

Utilisez-le comme suit dans votre code HTML:

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

Remarque mineure: toute balise HTML du paramètre to entraînera l'échec de l'expression en raison de règles de sécurité relatives au contenu angulaire.

16
John Rix

Cette fonction simple peut le faire:

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