Czy ktoś zna bibliotekę Javascript (np. Podkreślenia, jQuery, MooTools itp.), Która oferuje metodę inkrementacji litery?
Chciałbym móc zrobić coś takiego:
"a"++; // would return "b"
javascript
increment
alphabetical
andyzinsser
źródło
źródło
Odpowiedzi:
Proste, bezpośrednie rozwiązanie
Jak zauważyli inni, wadą jest to, że może nie obsługiwać przypadków takich jak litera „z” zgodnie z oczekiwaniami. Ale to zależy od tego, czego od tego chcesz. Powyższe rozwiązanie zwróci „{” dla znaku po „z”, a to jest znak po „z” w ASCII, więc może to być wynik, którego szukasz, w zależności od tego, jaki jest twój przypadek użycia.
Unikalny generator ciągów
(Zaktualizowano 2019/05/09)
Ponieważ ta odpowiedź zyskała tak dużą widoczność, postanowiłem rozszerzyć ją nieco poza zakres pierwotnego pytania, aby potencjalnie pomóc ludziom, którzy natkną się na to z Google.
Uważam, że często potrzebuję czegoś, co wygeneruje sekwencyjne, unikalne ciągi w określonym zestawie znaków (na przykład przy użyciu tylko liter), więc zaktualizowałem tę odpowiedź, aby uwzględnić klasę, która zrobi to tutaj:
Stosowanie:
źródło
Zwykły javascript powinien załatwić sprawę:
źródło
A co jeśli dana litera to z? Oto lepsze rozwiązanie. Idzie A, B, C ... X, Y, Z, AA, AB, ... itd. Zasadniczo zwiększa litery, tak jak ID kolumn w arkuszu kalkulacyjnym Excel.
nextChar ('yz'); // zwraca „ZA”
źródło
if (same(u,'Z')){
naif (u == 'Z'){
i działa idealnie, dzięki!same(str,char)
nie została tam wklejona? Nie wiem.same()
jest to oczywiście funkcja niestandardowa. No cóż,==
działa i gdybym chciał być bardzo pewny, przydałbym się===
, ale przetestowałem to i jest w porządku. Dzięki jeszcze raz!Jeden możliwy sposób mógłby być taki, jak zdefiniowano poniżej
źródło
Możesz tego spróbować
Najpierw przekonwertuj go na liczbę Ascii .. Zwiększ ją .. a następnie przekonwertuj z Ascii na znak ..
Sprawdź FIDDLE
źródło
Musiałem wielokrotnie używać sekwencji liter, więc utworzyłem tę funkcję w oparciu o to pytanie SO. Mam nadzieję, że to pomoże innym.
Jak tego użyć:
Zobacz to działające demo
źródło
Dodając wszystkie te odpowiedzi:
Przykład: http://jsfiddle.net/pitaj/3F5Qt/
źródło
Ten działa dobrze:
źródło
Rozwiązanie tylko dla śmiechu
źródło
To jest naprawdę stare. Ale potrzebowałem tej funkcjonalności i żadne z rozwiązań nie jest optymalne dla mojego przypadku użycia. Chciałem wygenerować a, b, c ... z, aa, ab ... zz, aaa .... Ta prosta rekurencja spełnia swoje zadanie.
źródło
Utwórz funkcję z {a: 'b', b: 'c', etc} w zamknięciu: -
stosowanie:-
Dodawanie wielkich liter i cyfr: -
ps W niektórych wersjach JavaScript możesz użyć
[...chars]
zamiastchars.split('')
źródło
Oto odmiana algorytmu rot13, który przesłałem na https://stackoverflow.com/a/28490254/881441 :
Kod wejściowy na dole i wyszukany kodek znajdują się na górze (tj. Kod wyjściowy jest taki sam jak kod wejściowy, ale przesunięty o 1). Funkcja zmienia tylko litery, tzn. Jeśli zostanie przekazany jakikolwiek inny znak, pozostanie on niezmieniony przez ten kodek.
źródło
źródło
Na podstawie zwiększania i zmniejszania odpowiedzi @Nathan na ścianie
Stosowanie
źródło