Hola una vez más,
genero una cadena de 6 dígitos con el siguiente código como tal =>
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_length = 6; var randomstring = ''; for (var x = 0; x < string_length; x++) { var letterOrNumber = Math.floor(Math.random() * 2); if (letterOrNumber == 0) { var newNum = Math.floor(Math.random() * 9); randomstring += newNum; } else { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum, rnum + 1); } } const string = randomstring;Pero en realidad quiero agregar espacios entre la cadena como
si la cadena es bc48snwk2 , se deben agregar espacios para que la cadena se vea como tal -> bc 4 8 snwk 2
Así es como podrías lograr esto:
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; const length = 6; const randomInteger = (max) => Math.floor(Math.random() * max); const randomNumberOrLetter = (chars) => () => randomInteger(2) ? randomInteger(10) : chars[randomInteger(chars.length)]; const result = Array.from({ length }, randomNumberOrLetter(chars)).join(" "); console.log(result); En mi respuesta, asumo que necesita dígitos entre 0 y 9 (no 0 y 8) y que su Math.floor(Math.random() * 9) es un error.
Puede usar string.split("").join(" ") , así:
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_length = 6; var randomstring = ""; for (var x = 0; x < string_length; x++) { var letterOrNumber = Math.floor(Math.random() * 2); if (letterOrNumber == 0) { var newNum = Math.floor(Math.random() * 9); randomstring += newNum; } else { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum, rnum + 1); } } const string = randomstring; console.log(string.split("").join(" ")); Este código ( string.split("").join(" ") ) primero dividirá la cadena (ej: v0Q75P ) en una matriz como esta ["v", "0", "Q", "7", "5", "P"] y luego únelo con un espacio entre los elementos como este v 0 Q 7 5 P .
console.log(string); // v0Q75P console.log(string.split("")); // ["v", "0", "Q", "7", "5", "P"] console.log(string.split("").join(" ")); // v 0 Q 7 5 PAlgunos recursos útiles:
Tienes varias opciones para lograrlo.
Gire a Array & Join:
var newString = Array.from(randomString).join(" ");Esto hará que la cadena sea una matriz y luego la convertirá de nuevo en una cadena con un espacio adicional entre cada carácter.
Reemplazar con RegEx:
var newString = randomString[0] + randomString.slice(1).replace(/(\w)/g, " $1"); // Or a more complex regex var newString = randomString.replace(/\w(\w)/g, " $1");