2012-06-20 2 views
31

Есть ли простой способ удалить символ в определенном месте в javascript?Удалить символ в определенном месте в строке - javascript

например. если у меня есть строка "Hello World", могу ли я удалить символ в позиции 3?

результат я искал бы бы следующее:

"Helo World" 

Этот вопрос не является дубликатом Javascript - remove character from a string, beucase это одно об удалении символа в определенной позиции, и thta речь идет о удаление всех экземпляров символа.

+0

Вы даже смотреть на ответ, прежде чем публиковать этот вопрос? Если вы проиграли «Javascript string remove character», вы могли бы найти по крайней мере 4 других вопроса отсюда, не говоря уже о фактическом решении примерно в миллион раз. – phenomnomnominal

+0

Я сделал, но я не мог выглядеть очень тяжело – starbeamrainbowlabs

+4

Это не дубликат. Этот вопрос касается удаления известного персонажа из определенной позиции. Дубликат - это удаление известного символа из произвольной позиции. – Matt

ответ

50

Это зависит от того, как easy вы найдете следующее, в котором используются простые методы String (в данном случае slice()).

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

Спасибо! Я знал, что будет простое решение. Я не думал об этом :-) – starbeamrainbowlabs

+0

@Zon: Именно, и это идея. В сочетании с '+ str.slice (4);', вы заканчиваете удаление третьего символа (нулевой индексации) в строке 'str'. 'str.slice (0, 3) + str.slice (4) // Helo World' – Matt

+1

Просто чтобы поместить мой доллар: str.slice (0, 3) дает« Hel »(взять от 1 до 3-го символа); str.slice (4) дает «o World» (взять все после 4-го символа); вы также можете установить границы резки следующим образом: str.slice (0, -6), чтобы получить «Hello». – 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

Вы можете попробовать это так !!

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

Вот живой пример: http://jsbin.com/ogagaq

+0

Что делать, если переменная postion получает значение 0? Первый символ не удаляется. –

+0

@GeorgeSiggouroglou Спасибо за указание, на самом деле переменная позиции 1 основана (я прокомментировал 0). Просто исправил комментарий. –

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

alert(result); 

Значение i не должно быть меньше 1.

+0

Что такое 'i'? Почему это должно быть не меньше 1 вместо 0? – starbeamrainbowlabs

1

вы можете использовать substring() способ. ех,

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

Hi starbeamrainbowlabs,

Вы можете сделать это с помощью следующих действий:

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); 

Я проверил это в моей консоли JavaScript, так что вы можете проверить это Благодаря

0

Поверните строку в массив, вырежьте символ по указанному индексу и вернитесь к строке

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

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

Если опустить первый параметр, метод нарежьте остальную часть строки:

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

Output: 
    "Apple, Banana, Kiwi" 

Если опустить конкретный индекс символа используйте

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

Output: 
    "Helo world"