2015-05-28 13 views
12

Gibt es einen bestimmten Winkel? Wenn nicht, sollte ich die eingebaute jQuery dazu benutzen? Wenn ich die eingebaute jquery verwenden soll, wie komme ich zur Funktion trim(), ohne $ zu verwenden (oder ist das notwendig)?Wie trim() eine Zeichenfolge in angularjs?

Bearbeiten - Ja, ich weiß über str.trim(). Es tut uns leid. Ich muss dies in IE arbeiten 8

Edit - Soweit diese Frage ein Duplikat ist, frage ich speziell, wie dies in eckigen zu tun, wo die Antwort erklärt, wie es in Javascript, Node und Jquery zu tun. Gibt es eine Möglichkeit, es mit der eingebauten jQuery in eckigen zu tun?

Bearbeiten - Offenbar ist die Antwort „AngularJS nicht tut, um diese“

+0

[trim()] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/trim) ist eine integrierte Methode für den String-Prototyp, die von den meisten Browsern unterstützt wird. Der MDN-Link bietet eine Polyfill – CodingIntrigue

+0

Ihre Bearbeitung ist sehr unfair gegenüber den Leuten, die bereits geantwortet haben. Sie sollten diese Art von Bestimmung zum Offset hinzufügen. – CodingIntrigue

+0

mögliches Duplikat von [Trimmzeichenfolge in JavaScript?] (Http://stackoverflow.com/questions/498970/trim-string-in-javascript) –

Antwort

9

Verwendung trim() Methode von JavaScript nach allen AngularJS ist auch ein JavaScript-Framework, und es ist nicht notwendig, $ zu setzen trim anzuwenden()

zum Beispiel

var x="hello world"; 
x=x.trim() 
+0

Ich brauche das in IE 7/8/9 zu arbeiten. trim() macht das nicht. – Slartibartfast

+0

Früher in Frage wurde es nicht erwähnt, dass es nicht funktioniert für Sie in IE, so dass Sie jetzt str.replace (/^\ s + | \ s + $/g, ''); –

19

Warum Sie nicht einfach verwenden JavaScripts trim():

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

Für die Kompatibilität mit <IE9 Verwendung:

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

Found it Here

+1

Nun ... nicht überall ... z. in CodingIntrigue

+0

http://kangax.github.io/compat-table/es5/#String.prototype.trim. Nur nicht im Strengen Modus in IE9 – com2ghz

+0

Es muss in IE 7+ – Slartibartfast

17

Wenn Sie nur Anzeige benötigen der beschnittene Wert dann würde ich vorschlagen, gegen die ursprüngliche Zeichenfolge Manipulation und stattdessen eine filter verwenden.

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 
    }; 
}); 

Und dann

<span>{{ foo | trim }}</span> 
1

JS .trim() in grundsätzlich Everthing unterstützt wird, außer IE 8 und unten.

Wenn Sie möchten, dass es damit funktioniert, können Sie JQuery verwenden, aber es muss < 2.0.0 sein (da die Unterstützung für IE8 in der 2.x.x-Zeile entfernt wurde).

Die andere Option, wenn Sie IE7 Pflege/8 (Wie Sie bereits erwähnt), ist, sich fügen trimmen:

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

Aus dieser und anderen Antworten entnehme ich, dass es keine spezielle Art gibt, dies zu handhaben. – Slartibartfast

+0

Sie haben Recht, da ist nicht. – YaManicKill

3

ich diesen Code in meinem Tag eingefügt und es funktioniert einwandfrei:

ng-show="!Contract.BuyerName.trim()" > 
+0

Warum wird dies abgelehnt? Hat super funktioniert und scheint die einfachste Lösung zu sein. –

Verwandte Themen