Alguém conhece uma biblioteca Javascript (por exemplo, sublinhado, jQuery, MooTools, etc.) que oferece um método de incrementar uma letra?
Eu gostaria de ser capaz de fazer algo como:
"a"++; // would return "b"
javascript
increment
alphabetical
andyzinsser
fonte
fonte
Respostas:
Solução simples e direta
Como outros observaram, a desvantagem é que ele pode não lidar com casos como a letra 'z' como esperado. Mas depende do que você quer com isso. A solução acima retornará '{' para o caractere após 'z', e este é o caractere após 'z' em ASCII, portanto, pode ser o resultado que você está procurando, dependendo de qual é o seu caso de uso.
Gerador de string único
(Atualizado em 09/05/2019)
Como essa resposta recebeu tanta visibilidade, decidi expandi-la um pouco além do escopo da pergunta original para ajudar potencialmente as pessoas que estão tropeçando nisso do Google.
Descobri que o que geralmente quero é algo que gere strings sequenciais e exclusivas em um determinado conjunto de caracteres (como usar apenas letras), então atualizei esta resposta para incluir uma classe que fará isso aqui:
Uso:
fonte
JavaScript simples deve resolver o problema:
fonte
E se a letra fornecida for z? Aqui está uma solução melhor. Ele vai A, B, C ... X, Y, Z, AA, AB, ... etc. Basicamente, ele incrementa letras como os IDs de coluna de uma planilha do Excel.
nextChar ('yz'); // retorna "ZA"
fonte
if (same(u,'Z')){
paraif (u == 'Z'){
e funciona perfeitamente, obrigado!same(str,char)
não foi colada lá? Não sei.same()
é claramente uma função personalizada. Bem,==
funciona, e se eu quisesse ter certeza absoluta, poderia usar===
, mas testei e está bom. Obrigado novamente!Uma forma possível pode ser definida abaixo
fonte
Você pode tentar isso
Primeiro, converta-o para um número Ascii .. Incremente-o .. e depois converta de Ascii para char ..
Verifique FIDDLE
fonte
Eu precisei usar sequências de letras várias vezes e por isso fiz essa função com base nessa pergunta do SO. Espero que isso possa ajudar outras pessoas.
Como usá-lo:
Veja esta demonstração de trabalho
fonte
Somando todas essas respostas:
Exemplo: http://jsfiddle.net/pitaj/3F5Qt/
fonte
Este funciona bem:
fonte
Uma solução só para rir
fonte
Isso é muito antigo. Mas eu precisava dessa funcionalidade e nenhuma das soluções é ideal para meu caso de uso. Eu queria gerar a, b, c ... z, aa, ab ... zz, aaa .... Essa recursão simples faz o trabalho.
fonte
Faça uma função com {a: 'b', b: 'c', etc} em um encerramento: -
uso:-
Adicionando maiúsculas e dígitos: -
ps Em algumas versões de Javascript, você pode usar em
[...chars]
vez dechars.split('')
fonte
Aqui está uma variação do algoritmo rot13 que enviei em https://stackoverflow.com/a/28490254/881441 :
O código de entrada na parte inferior e o codec pesquisado está na parte superior (ou seja, o código de saída é o mesmo que o código de entrada, mas deslocado em 1). A função muda apenas letras, ou seja, se qualquer outro caractere for passado, ele não será alterado por este codec.
fonte
fonte
Com base no aumento e diminuição da resposta da parede @Nathan
Uso
fonte