web-dev-qa-db-fra.com

Comment puis-je couper () une chaîne dans angularjs?

Existe-t-il un moyen spécifique angular?? Sinon, devrais-je utiliser le jquery intégré pour le faire? Si je devais utiliser le jquery intégré, comment accéder à la fonction trim () sans utiliser $ (ou est-ce nécessaire)?

Edit - Oui, je connais str.trim (). Désolé. J'ai besoin que cela fonctionne IE 8

Edit - Dans la mesure où cette question est un doublon, je demande précisément comment procéder dans angular où la réponse référencée explique comment procéder en javascript, noeud et jquery. Existe-t-il un moyen le faire en utilisant le jquery intégré dans angulaire?

Edit - Apparemment, la réponse est "AngularJS ne fait pas cela"

18
Slartibartfast

Pourquoi n'utilisez-vous pas simplement celui de JavaScript trim ():

str.trim() //Will work everywhere irrespective of any framework.

Pour la compatibilité avec <IE9 utilisation:

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}

Je l'ai trouvé Ici

23
Zee

Si vous avez seulement besoin d'afficher la valeur ajustée, je vous suggère de ne pas manipuler la chaîne d'origine et d'utiliser plutôt filtre .

app.filter('trim', function () {
    return function(value) {
        if(!angular.isString(value)) {
            return value;
        }  
        return value.replace(/^\s+|\s+$/g, ''); // you could use .trim, but it's not going to work in IE<9
    };
});

Et alors

<span>{{ foo | trim }}</span>
20
Sergiu Paraschiv

utiliser la méthode trim () de javascript après tout angularjs est également un framework javascript et il n'est pas nécessaire de mettre $ pour appliquer trim ()

par exemple

var x="hello world";
x=x.trim()
12
Shubham Nigam

J'insère ce code dans mon tag et cela fonctionne correctement:

ng-show="!Contract.BuyerName.trim()" >
4
Sheyda Hosseini

JS .trim () est supporté dans everthing, sauf IE 8 et moins).

Si vous voulez que cela fonctionne avec cela, vous pouvez utiliser JQuery, mais il devra être <2.0.0 (car ils ont supprimé le support pour IE8 dans la ligne 2.x.x).

Votre autre option, si vous vous souciez de IE7/8 (comme vous l’avez mentionné plus tôt), consiste à ajouter vous-même le trim

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}
1
YaManicKill