Ich versuche, JavaScript-Code von MicrosoftAjax nach JQuery zu verschieben. Ich verwende die JavaScript-Entsprechungen in MicrosoftAjax der gängigen .net-Methoden, z. B. String.format (), String.startsWith () usw. Gibt es Entsprechungen zu diesen in jQuery?
javascript
jquery
string.format
Waleed Eissa
quelle
quelle
Antworten:
Der Quellcode für ASP.NET AJAX steht als Referenz zur Verfügung, sodass Sie ihn auswählen und die Teile, die Sie weiterhin verwenden möchten, in eine separate JS-Datei aufnehmen können. Oder Sie können sie auf jQuery portieren.
Hier ist die Formatierungsfunktion ...
Und hier sind die Funktionen "Beenden mit" und "Starten mit Prototypen" ...
quelle
{0}{1}
,{0}
wird es zuerst ersetzt, und dann werden alle Vorkommen{1}
sowohl im bereits ersetzten Text als auch im Originalformat ersetzt.Dies ist eine schnellere / einfachere (und prototypische) Variante der von Josh veröffentlichten Funktion:
Verwendung:
Ich benutze das so oft, dass ich es nur als Alias bezeichnet habe
f
, aber Sie können auch das ausführlichere verwendenformat
. z.B'Hello {0}!'.format(name)
quelle
Viele der oben genannten Funktionen (außer der von Julian Jelfs) enthalten den folgenden Fehler:
Oder für die Varianten, die ab dem Ende der Argumentliste rückwärts zählen:
Hier ist eine korrekte Funktion. Es ist eine prototypische Variante von Julian Jelfs 'Code, die ich etwas enger gemacht habe:
Und hier ist eine etwas fortgeschrittenere Version derselben, mit der Sie Zahnspangen entkommen können, indem Sie sie verdoppeln:
Das funktioniert richtig:
Hier ist eine weitere gute Implementierung von Blair Mitchelmore mit einer Reihe netter zusätzlicher Funktionen: https://web.archive.org/web/20120315214858/http://blairmitchelmore.com/javascript/string.format
quelle
Es wurde eine Formatierungsfunktion erstellt, die entweder eine Sammlung oder ein Array als Argumente verwendet
Verwendung:
Code:
quelle
String.prototype
?Es gibt eine (etwas) offizielle Option: jQuery.validator.format .
Kommt mit jQuery Validation Plugin 1.6 (mindestens).
Ganz ähnlich wie
String.Format
in .NET.Bearbeiten Behobener defekter Link.
quelle
Wenn Sie das Validierungs-Plugin verwenden, können Sie Folgendes verwenden:
jQuery.validator.format("{0} {1}", "cool", "formatting") = 'cool formatting'
http://docs.jquery.com/Plugins/Validation/jQuery.validator.format#templateargumentargumentN ...
quelle
Obwohl nicht genau das, wonach der Q gefragt hat, habe ich einen erstellt, der ähnlich ist, aber benannte Platzhalter anstelle von nummerierten verwendet. Ich persönlich bevorzuge es, benannte Argumente zu haben und nur ein Objekt als Argument zu senden (ausführlicher, aber einfacher zu pflegen).
Hier ist ein Anwendungsbeispiel ...
quelle
Mit einem modernen Browser, der EcmaScript 2015 (ES6) unterstützt, können Sie Template Strings genießen . Anstatt zu formatieren, können Sie den Variablenwert direkt einfügen:
Beachten Sie, dass die Vorlagenzeichenfolge mit Back-Ticks (`) geschrieben werden muss.
quelle
Keine der bisher präsentierten Antworten hat keine offensichtliche Optimierung der Verwendung von Enclosure zum einmaligen Initialisieren und Speichern regulärer Ausdrücke für spätere Verwendungen.
Außerdem berücksichtigt keines der Beispiele die Implementierung von format (), falls bereits eines vorhanden ist.
quelle
Hier ist meins:
Nicht kugelsicher, funktioniert aber, wenn Sie es vernünftig verwenden.
quelle
Weit nach der Spätsaison habe ich mir nur die Antworten angesehen und meine Tuppence wert:
Verwendung:
Methode:
Ergebnis:
quelle
Jetzt können Sie Vorlagenliterale verwenden :
quelle
Hier ist meine Version, die in der Lage ist, '{' zu entkommen und diese nicht zugewiesenen Platzhalter zu bereinigen.
quelle
Die folgende Antwort ist wahrscheinlich die effizienteste, hat jedoch den Vorbehalt, dass sie nur für 1: 1-Zuordnungen von Argumenten geeignet ist. Dies verwendet die schnellste Methode zum Verketten von Zeichenfolgen (ähnlich einem Stringbuilder: Array von Zeichenfolgen, verbunden). Dies ist mein eigener Code. Benötigt wahrscheinlich ein besseres Trennzeichen.
Verwenden Sie es wie:
quelle
Dies verstößt gegen das DRY-Prinzip, ist jedoch eine präzise Lösung:
quelle
quelle
Ich konnte Josh Stodolas Antwort nicht zur Arbeit bringen, aber das Folgende funktionierte für mich. Beachten Sie die Spezifikation von
prototype
. (Getestet auf IE, FF, Chrome und Safari.):s
sollte wirklich ein sein Klon vonthis
um nicht eine destruktiven Methode zu sein, aber es ist nicht wirklich notwendig.quelle
Hier ist die TypeScript-Version, die die großartige Antwort von adamJLev oben erweitert :
quelle
Ich habe einen Plunker, der ihn dem String-Prototyp hinzufügt : string.format Er ist nicht nur so kurz wie einige der anderen Beispiele, sondern auch viel flexibler.
Die Verwendung ähnelt der c # -Version:
Unterstützung für die Verwendung von Namen und Objekteigenschaften hinzugefügt
quelle
Sie können das Array auch mit solchen Ersetzungen schließen.
oder du kannst es versuchen
bind
quelle