validacion - validar formulario javascript html5
¿Qué es un método que se puede usar para incrementar las letras? (8)
¿Qué pasa si la letra dada es z? Aquí hay una mejor solución. Va A, B, C ... X, Y, Z, AA, AB, ... etc. Básicamente incrementa las letras como las ID de columna de una hoja de cálculo de Excel.
nextChar (''yz''); // devuelve "ZA"
function nextChar(c) {
var u = c.toUpperCase();
if (same(u,''Z'')){
var txt = '''';
var i = u.length;
while (i--) {
txt += ''A'';
}
return (txt+''A'');
} else {
var p = "";
var q = "";
if(u.length > 1){
p = u.substring(0, u.length - 1);
q = String.fromCharCode(p.slice(-1).charCodeAt(0));
}
var l = u.slice(-1).charCodeAt(0);
var z = nextLetter(l);
if(z===''A''){
return p.slice(0,-1) + nextLetter(q.slice(-1).charCodeAt(0)) + z;
} else {
return p + z;
}
}
}
function nextLetter(l){
if(l<90){
return String.fromCharCode(l + 1);
}
else{
return ''A'';
}
}
function same(str,char){
var i = str.length;
while (i--) {
if (str[i]!==char){
return false;
}
}
return true;
}
// below is simply for the html sample interface and is unrelated to the javascript solution
var btn = document.getElementById(''btn'');
var entry = document.getElementById(''entry'');
var node = document.createElement("div");
node.id = "node";
btn.addEventListener("click", function(){
node.innerHTML = '''';
var textnode = document.createTextNode(nextChar(entry.value));
node.appendChild(textnode);
document.body.appendChild(node);
});
<input id="entry" type="text"></input>
<button id="btn">enter</button>
¿Alguien sabe de una biblioteca Javascript (por ejemplo, subrayado, jQuery, MooTools, etc.) que ofrece un método para incrementar una letra?
Me gustaría poder hacer algo como:
"a"++; // would return "b"
Agregando todas estas respuestas:
// 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);
}
Ejemplo: http://jsfiddle.net/pitaj/3F5Qt/
El javascript simple debería hacer el truco:
String.fromCharCode(''A''.charCodeAt() + 1) // Returns B
Este funciona 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''
Esto es realmente viejo Pero necesitaba esta funcionalidad y ninguna de las soluciones es óptima para mi caso de uso. Quería generar a, b, c ... z, aa, ab ... zz, aaa .... Esta simple recursión hace el trabajo.
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);
}
};
Necesitaba usar secuencias de letras varias veces, por lo que hice esta función en base a esta pregunta SO. Espero que esto pueda ayudar a otros.
function charLoop(from, to, callback)
{
var i = from.charCodeAt(0);
var to = to.charCodeAt(0);
for(;i<=to;i++) callback(String.fromCharCode(i));
}
- desde - letra de inicio
- hasta la última letra
- devolución de llamada (carta) - función para ejecutar para cada letra en la secuencia
Cómo usarlo:
charLoop("A", "K", function(char) {
//char is one letter of the sequence
});
Puedes intentar esto
console.log( ''a''.charCodeAt(0))
Primero conviértalo en número Ascii. Increméntalo ... luego conviértete de Ascii a char ...
var nex = ''a''.charCodeAt(0);
console.log(nex)
$(''#btn1'').on(''click'', function() {
var curr = String.fromCharCode(nex++)
console.log(curr)
});
Verificar FIDDLE
function nextChar(c) {
return String.fromCharCode(c.charCodeAt(0) + 1);
}
nextChar(''a'');