2012-06-20 26 views
31

¿Hay alguna manera fácil de eliminar el carácter en una determinada posición en javascript?Eliminar un carácter en una posición determinada en una cadena - javascript

p. Ej. si tengo la cadena "Hello World", ¿puedo eliminar el personaje en la posición 3?

el resultado que estaría buscando gustaría lo siguiente:

"Helo World" 

Esta pregunta no es un duplicado de Javascript - remove character from a string, beucase éste se trata de eliminar el carácter situado en una posición específica, y, que pregunta se refiere eliminando todas las instancias de un personaje.

+0

¿Usted incluso buscar una respuesta antes de publicar esta pregunta? Si "Goggled cadena de caracteres Javascript eliminar carácter" habría encontrado al menos otras 4 preguntas de aquí, sin mencionar la solución real de un millón de veces. – phenomnomnominal

+0

Lo hice, pero no puedo haber visto muy duro – starbeamrainbowlabs

+4

Esto no es un duplicado. Esta pregunta se trata de eliminar un personaje conocido de una determinada posición. El duplicado consiste en eliminar un personaje conocido de una posición arbitraria. – Matt

Respuesta

50

Depende de cómo fácil encuentra lo siguiente, que utiliza métodos simples de cadena (en este caso slice()).

var str = "Hello World"; 
str = str.slice(0, 3) + str.slice(4); 
+1

¡Gracias! Sabía que habría una solución simple. No pensé en eso :-) – starbeamrainbowlabs

+0

@Zon: Exactamente, y esa es la idea. Cuando se combina con '+ str.slice (4);', terminas eliminando el tercer carácter (cero indexado) en la cadena 'str'. 'str.slice (0, 3) + str.slice (4) // Helo World' – Matt

+1

Solo para poner mi dollar: str.slice (0, 3) da 'Hel' (toma del 1er al 3er símbolo); str.slice (4) da 'o World' (toma todo después del 4to símbolo); también puede establecer bordes de corte como este: str.slice (0, -6) para obtener 'Hola'. – Zon

2
var str = 'Hello World'; 
       str = setCharAt(str, 3, ''); 
       alert(str); 

function setCharAt(str, index, chr) 
     { 
      if (index > str.length - 1) return str; 
      return str.substr(0, index) + chr + str.substr(index + 1); 
     } 
11

Usted puede tratar de esta manera !!

var str ="Hello World"; 
var position = 6;//its 1 based 
var newStr = str.substring(0,position - 1) + str.substring(postion, str.length); 
alert(newStr); 

Aquí es el ejemplo vivo: http://jsbin.com/ogagaq

+0

¿Qué sucede si la variable de posición obtiene el valor 0? El primer caracter no se borra –

+0

@GeorgeSiggouroglou Gracias por señalar, en realidad la variable de posición está basada en 1 (comencé 0). Solo solucioné el comentario. –

0
var str = 'Hello World', 
    i = 3, 
    result = str.substr(0, i-1)+str.substring(i); 

alert(result); 

Valor de i no debe ser inferior a 1.

+0

¿Qué es 'i'? ¿Por qué no debería ser menos de 1 en lugar de 0? – starbeamrainbowlabs

1

puede usar el método substring(). ex,

var x = "Hello world" 
var x = x.substring(0, i) + 'h' + x.substring(i+1); 
0

starbeamrainbowlabs Hola,

Usted puede hacer esto con lo siguiente:

var oldValue = "pic quality, hello" ; 
var newValue = "hello"; 
var oldValueLength = oldValue.length ; 
var newValueLength = newValue.length ; 
var from = oldValue.search(newValue) ; 
var to = from + newValueLength ; 
var nes = oldValue.substr(0,from) + oldValue.substr(to,oldValueLength); 
console.log(nes); 

He probado esto en mi consola de Javascript por lo que también puede comprobar esto Gracias

0

Convierta la cadena en matriz, corte un carácter en el índice especificado y vuelva a la cadena

let index = 3 
let str = 'Hello World'.split('') 

str.splice(index, 1) 
str = str.join('') 
2

Si se omite el primer parámetro, el método va a cortar el resto de la cadena:

var str = ",Apple, Banana, Kiwi"; 
str.slice(1) // to remove first index character 

Output: 
    "Apple, Banana, Kiwi" 

Si se omite el carácter de índice en particular, entonces utilice

var str ="Hello world" , index=3; 
str = str.slice(0,index-1) + str.slice(index); 

Output: 
    "Helo world" 
Cuestiones relacionadas