2012-09-24 8 views
6

tengo que sustituir una cadena de gama Ejemplo:¿Cómo puedo reemplazar una cuerda por rango?

string = "this is a string";//I need to replace index 0 to 3 whith another string Ex.:"that" 
result = "that is a string"; 

pero esta necesidad de ser dinámicamente. No puede ser reemplazar una palabra fija ... es necesario por la gama

He tratado

  result = string.replaceAt(0, 'that'); 

pero esto reemplazar sólo el primer carácter y quiero que el primero a tercero

+0

puede ser más elegante por favor – user1529342

+0

¿qué ha intentado? ¿Has visto la [documentación] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/prototype#Methods) para los métodos de cadena? – jbabey

Respuesta

14
function replaceRange(s, start, end, substitute) { 
    return s.substring(0, start) + substitute + s.substring(end); 
} 

var str = "this is a string"; 
var newString = replaceRange(str, 0, 4, "that"); // "that is a string" 
3
var str = "this is a string"; 
var newString = str.substr(3,str.length); 
var result = 'that'+newString 

vuelve substr una parte de una cadena, con mi ejemplo, comienza en el carácter 3 hasta str.length para tener el último carácter ...

Para reemplazar el medio de una cadena, se puede usar la misma lógica ...

var str = "this is a string"; 
var firstPart = str.substr(0,7); // "this is " 
var lastPart = str.substr(8,str.length); // " string" 
var result = firstPart+'another'+lastPart; // "this is another string" 
+2

Probablemente debería señalar que las cadenas son inmutables en javascript, por lo que no debe reemplazar tanto como crear una nueva cadena con un comienzo diferente. –

0

Me sencilla substring llamada hará aquí

var str = "this is a string"; 
var result = "that" + str.substring(4); 

Salida jsfiddle un trabajo.

+0

sí, esto si quiero comenzar en primer char, pero si quiero comenzar en tercer lugar por ejemplo? – DevMobile

+0

@DevMobile, no estoy seguro de lo que quieres decir. 'str.substring (4)' devolverá todos los caracteres desde la cadena desde el 4 ° índice hasta el final. –

+0

Necesito reemplazar el 4to, 5to, 6to personaje por otro valor – DevMobile

Cuestiones relacionadas