Wie trimme ich () eine Zeichenfolge in anglejs?

Lesezeit: 1 Minute

Benutzeravatar von Slartibartfast
Slartibartfast

Gibt es einen winkelspezifischen Weg? Wenn nicht, sollte ich dafür die eingebaute jquery verwenden? Wenn ich die eingebaute jquery verwenden soll, wie komme ich zur Funktion trim(), ohne $ zu verwenden (oder ist das notwendig)?

Bearbeiten – Ja, ich kenne str.trim(). Es tut uns leid. Ich brauche dies, um in IE 8 zu arbeiten

Bearbeiten – Soweit es sich bei dieser Frage um ein Duplikat handelt, frage ich speziell, wie dies in Winkel ausgeführt wird, wobei die referenzierte Antwort erklärt, wie dies in Javascript, Knoten und Jquery ausgeführt wird. Gibt es eine Möglichkeit, dies mit dem eingebauten jquery in Angular zu tun?

Bearbeiten – Anscheinend lautet die Antwort “AngularJS macht das nicht”

  • trimmen() ist eine eingebaute Methode des String-Prototyps, die von den meisten Browsern unterstützt wird. Der MDN-Link stellt eine Polyfill bereit

    – CodingIntrige

    28. Mai 2015 um 12:16 Uhr


  • Ihre Bearbeitung ist sehr unfair gegenüber den Leuten, die bereits geantwortet haben. Sie sollten eine solche Bestimmung beim Offset angeben.

    – CodingIntrige

    28. Mai 2015 um 12:19 Uhr

  • mögliches Duplikat von Trim string in JavaScript?

    – Qantas 94 Schwer

    28. Mai 2015 um 12:19 Uhr

  • Qantas 94 Heavy – ja, das Jquery-Beispiel ist da, aber ich wusste nicht, ob das in Angular funktionieren würde, da das $ überschrieben wird.

    – Slartibartfast

    28. Mai 2015 um 12:21 Uhr

  • Ich stimme @CodingIntrigue zu, Ihre Änderungen sind unfair gegenüber anderen, die geantwortet haben. Auch wenn Winkel keine Out-of-the-Box-Lösung bietet, ist meiner Meinung nach ein Filter die Winkelmethode, dies zu tun.

    – Alphapilger

    1. Mai 2018 um 21:04 Uhr


Benutzeravatar von Zee
Zee

Warum benutzt du nicht einfach JavaScript’s trimmen():

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

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

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

Fand es Hier

  • Na ja … nicht überall … zB in

    – CodingIntrige

    28. Mai 2015 um 12:17 Uhr


  • kangax.github.io/compat-table/es5/#String.prototype.trim. Nur nicht im Strict Mode im IE9

    – com2ghz

    28. Mai 2015 um 12:18 Uhr

  • @Slartibartfast. Habe hier eine Lösung gefunden. Auch im Code aktualisiert.

    – Zee

    28. Mai 2015 um 12:22 Uhr

  • Das funktioniert und ich bin mir dieser Lösung bewusst, aber ich war auf der Suche nach einem bestimmten Winkel, möglicherweise mit der eingebauten jquery. Es scheint, dass dies nicht existiert.

    – Slartibartfast

    28. Mai 2015 um 12:26 Uhr

  • @Slartibartfast. Dafür gibt es in Angular keine eingebaute Methode. Sie können jedoch die andere Lösung verwenden, die unabhängig von den Browserversionen funktioniert.

    – Zee

    28. Mai 2015 um 12:28 Uhr

Wenn Sie nur brauchen Anzeige den getrimmten Wert, dann würde ich vorschlagen, die ursprüngliche Zeichenfolge nicht zu manipulieren und a zu verwenden Filter stattdessen.

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>

Verwenden Sie die trim()-Methode von Javascript, nachdem Winkeljs auch ein Javascript-Framework ist und es nicht erforderlich ist, $ zu setzen, um trim() anzuwenden

zum Beispiel

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

  • Früher wurde nicht erwähnt, dass es bei Ihnen im IE nicht funktioniert, sodass Sie jetzt str.replace(/^\s+|\s+$/g, ‘ ‘) verwenden können;

    – Shubham Nigam

    28. Mai 2015 um 12:24 Uhr

Benutzeravatar von Sheyda Hosseini
Sheyda Hosseini

Ich füge diesen Code in mein Tag ein und es funktioniert korrekt:

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

JS .trim() wird grundsätzlich von allem unterstützt, außer IE 8 und darunter.

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.xx-Zeile entfernt wurde).

Ihre andere Option, wenn Sie sich für IE7/8 interessieren (wie Sie bereits erwähnt haben), besteht darin, selbst Trimmung hinzuzufügen:

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

  • Aus dieser und anderen Antworten entnehme ich, dass es keine Angularjs-spezifische Art gibt, damit umzugehen.

    – Slartibartfast

    28. Mai 2015 um 12:23 Uhr

  • Aus dieser und anderen Antworten entnehme ich, dass es keine Angularjs-spezifische Art gibt, damit umzugehen.

    – Slartibartfast

    28. Mai 2015 um 12:23 Uhr

1431260cookie-checkWie trimme ich () eine Zeichenfolge in anglejs?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy