Вопрос по javascript, string – Удалить символ в определенной позиции в строке - javascript [duplicate]

41

This question already has an answer here:

How can I remove a character from a string using Javascript? 16 answers

Есть ли простой способ удалить символ в определенной позиции в JavaScript?

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

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

"Helo World"

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

@starbeamrainbowlabs Нет, это точная копия; связанный вопрос касается удаления 4-го символа (который также всегдаr).accepted answer here идентичен2nd highest voted answer по этому вопросу. MT0
Это не дубликат. Этот вопрос касается удаления известного персонажа из определенной позиции. Дубликат предназначен для удаления известного персонажа из произвольной позиции. Matt
Я сделал, но я не выглядел очень усердно starbeamrainbowlabs
@ MT0 Нет. Этот вопрос касается удаления символа по определенному индексу, а этот вопрос касается удаления экземпляров определенного символа из строки. starbeamrainbowlabs
Вы даже искали ответ, прежде чем опубликовать этот вопрос? Если вы замаскировали «строку JavaScript, удалите символ» Вы бы наткнулись здесь как минимум на 4 других вопроса, не говоря уже о фактическом решении около миллиона раз. phenomnomnominal

Ваш Ответ

8   ответов
13

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

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

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

substring() метод. ех,

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

используйте этот метод

removeByIndex(str,index){
   if(index==0){
            return  str.slice(1)
   }else{
            return str.slice(0,index-1) + str.slice(index);
         } 
   }

 var str ="Hello world" , index=3;
 console.log(removeByIndex(str,index));

Output: 
  "Helo world"
Что если index = 0?
@ Али У меня возникла проблема, спасибо, что сообщили мне. Я обновляю код.
2

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

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

str.splice(3, 1)
str = str.join('')

// str = 'Helo World'.
@AminNAIRI Я боюсь, что это не сработает.
Вы могли бы даже использовать сделать[...'Hello world!'].splice(3, 1).join('').
64

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

var str = "Hello World";
str = str.slice(0, 3) + str.slice(4);
Просто, чтобы поставить мой доллар: str.slice (0, 3) дает «Hel» (взять с 1-го по 3-й символ); str.slice (4) дает "o World" (взять все после 4-го символа); Вы также можете установить границы обрезки следующим образом: str.slice (0, -6), чтобы получить «Привет».
@ Зон: Точно, и это идея. Когда в сочетании с+ str.slice(4);вы в конечном итоге удаляете 3-й символ (с нулевым индексом) в строкеstr. str.slice(0, 3) + str.slice(4) // Helo World
Благодарю вас! Я знал, что будет простое решение. Я не думал об этом :-) starbeamrainbowlabs
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);
        }
0

Вы можете сделать это с помощью следующего:

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

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

alert(result);

i не должно быть меньше1.

Что & APOS; si? Почему оно не должно быть меньше 1 вместо 0? starbeamrainbowlabs

Похожие вопросы