Quelqu'un connaît-il une bibliothèque Javascript (par exemple underscore, jQuery, MooTools, etc.) qui offre une méthode pour incrémenter une lettre ?
Je voudrais pouvoir faire quelque chose comme :
"a"++; // would return "b"
Quelqu'un connaît-il une bibliothèque Javascript (par exemple underscore, jQuery, MooTools, etc.) qui offre une méthode pour incrémenter une lettre ?
Je voudrais pouvoir faire quelque chose comme :
"a"++; // would return "b"
En ajoutant à toutes ces réponses :
// first code on page
String.prototype.nextChar = function(i) {
var n = i | 1;
return String.fromCharCode(this.charCodeAt(0) + n);
}
String.prototype.prevChar = function(i) {
var n = i | 1;
return String.fromCharCode(this.charCodeAt(0) - n);
}
Exemple : http://jsfiddle.net/pitaj/3F5Qt/
J'avais besoin d'utiliser des séquences de lettres plusieurs fois et j'ai donc créé cette fonction basée sur cette question de l'OS. J'espère que cela pourra aider d'autres personnes.
function charLoop(from, to, callback)
{
var i = from.charCodeAt(0);
var to = to.charCodeAt(0);
for(;i<=to;i++) callback(String.fromCharCode(i));
}
Comment l'utiliser :
charLoop("A", "K", function(char) {
//char is one letter of the sequence
});
Celui-ci fonctionne bien :
var nextLetter = letter => {
let charCode = letter.charCodeAt(0);
let isCapital = letter == letter.toUpperCase();
if (isCapital == true) {
return String.fromCharCode((charCode - 64) % 26 + 65)
} else {
return String.fromCharCode((charCode - 96) % 26 + 97)
}
}
EXAMPLES
nextLetter("a"); // returns 'b'
nextLetter("z"); // returns 'a'
nextLetter("A"); // returns 'B'
nextLetter("Z"); // returns 'A'
Voici ma fonction pour incrémenter les lettres jusqu'à l'infini en Javascript (pour les majuscules uniquement).
function getNextStringId(str) {
let index = str.length-1;
let baseCode= str.charCodeAt(index);
do{
baseCode= str.charCodeAt(index);
let strArr= str.split("");
if(strArr[index] == "Z"){
strArr[index] = "A";
if(index==0){
strArr.unshift("A");
}
}
else{
strArr[index]= String.fromCharCode(baseCode + 1);
}
str= strArr.join("");
index--;
} while(baseCode == 90)
return str;
}
getNextStringId("A") // B
getNextStringId("Z") // AA
getNextStringId("ABZZ") // ACAA
C'est vraiment vieux. Mais j'avais besoin de cette fonctionnalité et aucune des solutions n'est optimale pour mon cas d'utilisation. Je voulais générer a, b, c...z, aa,ab...zz, aaa... . Cette récursion simple fait le travail.
function nextChar(str) {
if (str.length == 0) {
return 'a';
}
var charA = str.split('');
if (charA[charA.length - 1] === 'z') {
return nextID(str.substring(0, charA.length - 1)) + 'a';
} else {
return str.substring(0, charA.length - 1) +
String.fromCharCode(charA[charA.length - 1].charCodeAt(0) + 1);
}
};
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.