una tabla sirve recorrer que primer posicion para obtener letras historia funciona extendido electronica ejemplos corazon convert como codigos codigo charcode caracter cadena binario javascript string ascii

javascript - tabla - Cadena que contiene todos los caracteres ascii.



string charat js (6)

Aquí hay una versión en coffeescript.

require ''fluentnode'' all_Ascii = -> (String.fromCharCode(c) for c in [0..255]) describe ''all Ascii'', -> it ''all_Ascii'', -> all_Ascii.assert_Is_Function() all_Ascii().assert_Size_Is 256 all_Ascii()[0x41].assert_Is ''A'' all_Ascii()[66 ].assert_Is ''B'' all_Ascii()[50 ].assert_Is ''2'' all_Ascii()[150 ].assert_Is String.fromCharCode(150)

Quiero crear una cadena en JavaScript que contenga todos los caracteres ASCII. ¿Cómo puedo hacer esto?


Mi javascript está un poco oxidado, pero algo como esto:

s = ''''; for( var i = 32; i <= 126; i++ ) { s += String.fromCharCode( i ); }

Aunque no estoy seguro de si el rango es correcto.

Editar:
Parece que debería ser de 32 a 127 entonces. Equilibrado.

Edición 2:
Como el carácter 127 tampoco es un carácter imprimible, tendremos que reducirlo a 32 <= c <= 126, en lugar de 32 <= c <= 127.


Sólo quería poner esto aquí como referencia. (para generar aproximadamente 13/100 a 26/100 ms en mi computadora).

var allAsciiPrintables = JSON.stringify((Array.from(Array(126 + 32).keys()).slice(32).map((item) => { return String.fromCharCode(item); })).join(''''));

Descompuesto

var allAsciiPrintables = (function() { /* ArrayIterator */ var result = Array(126 + 32).keys(); /* [0, 126 + 32] */ result = Array.from(result); /* [32, 126 + 32] */ result = result.slice(32); /* transform each item from Number to its ASCII as String. */ result = result.map((item) => { return String.fromCharCode(item); }); /* convert from array of each string[1] to a single string */ result = result.join(''''); /* create an escaped string so you can replace this code with the string to avoid having to calculate this on each time the program runs */ result = JSON.stringify(result); /* return the string */ return result; })();

La solución más eficiente (si desea generar todo el conjunto cada vez que se ejecuta la secuencia de comandos, es probablemente) (toma alrededor de 3 / 100-35 / 100 milisegundos en mi computadora para generar).

var allAsciiPrintables = (() => { var result = new Array(126-32); for (var i = 32; i <= 126; ++i) { result[i - 32] = (String.fromCharCode(i)); } return JSON.stringify(result.join('''')); })();

extrañamente, esto es solo 3 a 10 veces más lento que la asignación de la cadena literal directamente (con backticks para indicar a javascript que evite la mayoría de los análisis de barra diagonal inversa).

var x; var t; t = performance.now(); x = ''!/"#$%&/'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[//]^_`abcdefghijklmnopqrstuvwxyz{|}~''; t = performance.now() - t; console.log(t);

.


Simplemente coloca los códigos de los caracteres y convierte cada uno en un carácter:

var s = ''''; for (var i=32; i<=127;i++) s += String.fromCharCode(i);


Sin hacer varios apéndices:

var s = Array.apply(null, Array(127-32)) .map(function(x,i) { return String.fromCharCode(i+32); }).join("");


var s = '' !"#$%&/'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[//]^_`abcdefghijklmnopqrstuvwxyz{|}~'';