Próbuję przenieść kod JavaScript z MicrosoftAjax do JQuery. Używam ekwiwalentów JavaScript w MicrosoftAjax popularnych metod .net, np. String.format (), String.startsWith () itp. Czy są w JQuery ich odpowiedniki?
javascript
jquery
string.format
Waleed Eissa
źródło
źródło
Odpowiedzi:
The Kod źródłowy dla ASP.NET AJAX jest dostępne dla odniesienia, dzięki czemu można podnieść przez to i zawierać elementy, które chcesz dalej używać w oddzielnym pliku JS. Lub możesz przenieść je do jQuery.
Oto funkcja formatu ...
A oto cele i funkcje prototypowe ...
źródło
{0}{1}
,{0}
najpierw zostanie zamieniony, a następnie wszystkie wystąpienia{1}
zarówno już podstawionego tekstu, jak i oryginalnego formatu zostaną zastąpione.Jest to szybsza / prostsza (i prototypowa) odmiana funkcji, którą opublikował Josh:
Stosowanie:
Używam tego do tego stopnia, że po prostu go aliasuję
f
, ale możesz też użyć bardziej szczegółowegoformat
. na przykład'Hello {0}!'.format(name)
źródło
Wiele z powyższych funkcji (oprócz Juliana Jelfa) zawiera następujący błąd:
Lub w przypadku wariantów, które liczą się wstecz od końca listy argumentów:
Oto poprawna funkcja. Jest to prototypowa odmiana kodu Juliana Jelfsa, którą ulepszyłem:
A oto nieco bardziej zaawansowana wersja tego samego, która pozwala ci uciec od nawiasów klamrowych poprzez ich podwojenie:
Działa to poprawnie:
Oto kolejna dobra implementacja Blair Mitchelmore, z kilkoma fajnymi dodatkowymi funkcjami: https://web.archive.org/web/20120315214858/http://blairmitchelmore.com/javascript/string.format
źródło
Utworzono funkcję formatu, która przyjmuje jako argument kolekcję lub tablicę
Stosowanie:
Kod:
źródło
String.prototype
?Istnieje (nieco) oficjalna opcja: jQuery.validator.format .
Pochodzi z jQuery Validation Plugin 1.6 (przynajmniej).
Całkiem podobny do
String.Format
znalezionego w .NET.Edytuj Naprawiono uszkodzony link.
źródło
Jeśli używasz wtyczki sprawdzania poprawności, możesz użyć:
jQuery.validator.format("{0} {1}", "cool", "formatting") = 'cool formatting'
http://docs.jquery.com/Plugins/Validation/jQuery.validator.format#templateargumentargumentN ...
źródło
Chociaż nie do końca to, o co prosił Q, zbudowałem taki, który jest podobny, ale używa nazwanych symboli zastępczych zamiast numerowanych. Ja osobiście wolę nazywać argumenty i po prostu wysłać obiekt jako argument (bardziej szczegółowy, ale łatwiejszy do utrzymania).
Oto przykładowe użycie ...
źródło
Korzystając z nowoczesnej przeglądarki obsługującej EcmaScript 2015 (ES6), możesz cieszyć się ciągami szablonów . Zamiast formatowania możesz bezpośrednio wstrzyknąć do niego wartość zmiennej:
Zauważ, że ciąg szablonu musi być napisany przy pomocy tyknięć (`).
źródło
Żadna z przedstawionych do tej pory odpowiedzi nie ma oczywistej optymalizacji wykorzystania załączników do jednorazowej inicjalizacji i przechowywania wyrażeń regularnych dla kolejnych zastosowań.
Żaden z przykładów nie uwzględnia implementacji formatu (), jeśli już istnieje.
źródło
To moje:
Nie jest kuloodporny, ale działa, jeśli używasz go rozsądnie.
źródło
Minęło późne zakończenie sezonu, ale właśnie patrzyłem na udzielone odpowiedzi i mam wartość mojej dwupłatności:
Stosowanie:
Metoda:
Wynik:
źródło
Teraz możesz używać literałów szablonów :
źródło
Oto moja wersja, która jest w stanie uciec z „{” i wyczyścić nieprzypisane miejsca.
źródło
Poniższa odpowiedź jest prawdopodobnie najskuteczniejsza, ale ma zastrzeżenie, że nadaje się tylko do mapowania argumentów od 1 do 1. Wykorzystuje to najszybszy sposób konkatenacji łańcuchów (podobny do budowniczego łańcuchów: tablica łańcuchów połączonych). To jest mój własny kod. Prawdopodobnie potrzebuje jednak lepszego separatora.
Użyj tego jak:
źródło
Narusza to zasadę SUCHO, ale jest to zwięzłe rozwiązanie:
źródło
źródło
Nie mogłem uzyskać odpowiedzi Josha Stodoli, ale następujące działało dla mnie. Zwróć uwagę na specyfikację
prototype
. (Testowane na IE, FF, Chrome i Safari.):s
naprawdę powinno być klonem zthis
tak aby nie być metoda destrukcyjna, ale nie jest to naprawdę konieczne.źródło
Rozwijając świetną odpowiedź adamJLev powyżej , oto wersja TypeScript:
źródło
Mam plunker, który dodaje go do prototypu łańcucha: string.format Jest nie tylko tak krótki jak niektóre inne przykłady, ale o wiele bardziej elastyczny.
Użycie jest podobne do wersji c #:
Dodano także obsługę nazw i właściwości obiektów
źródło
Możesz także zamknąć tablicę z takimi zamiennikami.
lub możesz spróbować
bind
źródło