Estoy tratando de crear una función que inserte espacios entre los caracteres de un argumento de cadena y luego devuelva una nueva cadena que contenga los mismos caracteres que el argumento, separados por caracteres de espacio.

E.g.

Hello

Se convierte

H e l l o

Soy un novato masivo y estoy seguro de que esto puede parecerles una tontería a algunas personas, pero parece que no puedo entenderlo.

7
Ross Cheeseright 10 sep. 2011 a las 17:19

4 respuestas

La mejor respuesta

Puede usar la función split() para activar la función encadenar en una matriz de caracteres individuales, y luego join() para volver a convertirlo en una cadena donde especifique un carácter de unión (especificando el espacio como carácter de unión):

function insertSpaces(aString) {
  return aString.split("").join(" ");
}

(Tenga en cuenta que el parámetro para split() es el carácter en el que desea dividir, por ejemplo, puede usar split(",") para dividir una lista separada por comas, pero si pasa una cadena vacía, solo se divide hasta cada personaje.)

12
nnnnnn 10 sep. 2011 a las 13:27
function insertSpaces(aString)
{
  return aString.split('').join(' ');
}
1
Andy King 24 jul. 2018 a las 21:56

Eso es bastante fácil ... simplemente llame al método de reemplazo en la cadena de la siguiente manera ...

var str = "Hello";
console.info(str.replace(/\B/g, " ");

Lo que estoy haciendo aquí es reemplazar el límite que no está dentro de la palabra que está dentro de la palabra. Es justo al revés del límite de la palabra denotado por "\ b", que está alrededor de la palabra; piense como si estuviera haciendo coincidir el borde de la palabra.

2
Bucket 17 oct. 2013 a las 18:44

La alternativa para una solución de división y unión podría ser:

'Hello'.replace(/(.(?!$))/g,'$1 '); //=> H e l l o
 //               ^all characters but the last
 //                          ^replace with found character + space

O en una función:

function insertChr(str,chr) {
  chr = chr || ' '; //=> default is space
  return str.replace(/(.(?!$))/g,'$1'+chr);
}
//usage
insertChr('Hello');     //=> H e l l o
insertChr('Hello','-'); //=> H-e-l-l-o

O como una función de prototipo de cadena:

String prototype.insertChr(chr){
  chr = chr || ' '; //=> default is space
  return this.replace(/(.(?!$))/g,'$1'+chr);
}
//usage
'Hello'.insertChr();    //=> H e l l o
'Hello'.insertChr('='); //=> H=e=l=l=o
1
KooiInc 10 sep. 2011 a las 13:57