2011-03-07 15 views

Respuesta

12

Primero encuentre la subcadena de la cadena a reemplazar, luego reemplace la primera aparición de esa cadena con la cadena vacía.

S = S.replace(S.substring(bindex, eindex), ""); 

Otra forma es convertir la cadena en una matriz, splice a cabo la parte no deseada y convertir a la cadena de nuevo.

var result = S.split(''); 
result.splice(bindex, eindex - bindex); 
S = result.join(''); 
+9

El primer método podría reemplazar más cosas de las esperadas. – alexandernst

+1

Yendo más lejos, el segundo método hará cosas raras si hay unicode presente en la cadena. (Como está dividiendo usando '' '''' '') – alexandernst

+1

.replace() solo reemplaza la primera aparición de la cadena dada. En todo caso, este método eliminaría algo innecesario –

0

Puede:

  1. obtener la subcadena de bindex y eindex
  2. quite los espacios de esa cadena
  3. reconstruir la cadena de

    var new_s = S.slice (1, bindex) + S.slice (bindex, eindex) .replace (/ \ s/g, '') + S.slice (eindex)

+0

Lo sentimos. Leí mal su pregunta, leyendo 'eliminar todos los espacios' en lugar de 'eliminar todos los caracteres' – Don

1

S.split (S.substring (bindex, eindex)) se unen (" ");

6

tratar

S = S.substring(0, bindex)+S.substring(eindex); 
21

el texto antes de bindex y concatenar con el texto después de eindex, como:

var S="hi how are you"; 
var bindex = 2; var eindex = 6; 
S = S.substr(0, bindex) + S.substr(eindex); 

S es ahora "Hola ¿estás"

+1

Este parece ser el enfoque más seguro. Debe ser la respuesta aceptada –

+0

Me gusta este, evita el fuego amigo. – TechNyquist

Cuestiones relacionadas