Como remover texto de uma string?

577

Eu tenho uma data-123corda.

Como posso remover data-da string enquanto deixo o 123?

Michael Grigsby
fonte

Respostas:

1157

var ret = "data-123".replace('data-','');
console.log(ret);   //prints: 123

Docs.


Para que todas as ocorrências sejam descartadas, use:

var ret = "data-123".replace(/data-/g,'');

PS: A função replace retorna uma nova string e deixa a string original inalterada; portanto, use o valor de retorno da função após a chamada replace ().

Mathletics
fonte
Como substituir várias expressões? Você precisa usar várias chamadas .replace?
Dror Bar
124

Isso não tem nada a ver com jQuery. Você pode usar a replacefunção JavaScript para isso:

var str = "data-123";
str = str.replace("data-", "");

Você também pode passar um regex para esta função. No exemplo a seguir, ele substituiria tudo, exceto numérico:

str = str.replace(/[^0-9\.]+/g, "");
James Johnson
fonte
Você poderia explicar o que o regex faz? Eu não entendo porque ele substitui a string, exceto números, se 0-9foi indicado.
rotimi-best
60

Você pode usar "data-123".replace('data-','');, como mencionado, mas como replace()só substitui o PRIMEIRO instância do texto correspondente, se sua seqüência foi algo como "data-123data-", em seguida,

"data-123data-".replace('data-','');

substituirá apenas o primeiro texto correspondente. E sua saída será"123data-"

DEMO

Portanto, se você deseja que todas as correspondências de texto sejam substituídas em string, use uma expressão regular com a gflag assim:

"data-123data-".replace(/data-/g,'');

E sua saída será "123"

DEMO2

laaposto
fonte
28

você pode usar a fatia () que returenta os caracteres entre o início e o fim (incluído o ponto final)

   string.slice(start , end);

aqui está um exmp para mostrar como funciona:

var mystr = ("data-123").slice(5); // jast define start point so output is "123"
var mystr = ("data-123").slice(5,7); // define start and end  so output is "12"
var mystr=(",246").slice(1); // returens "246"

Demo

Sr. Shojaei
fonte
23

JavaScript antigo simples será suficiente - o jQuery não é necessário para uma tarefa tão simples:

var myString = "data-123";
var myNewString = myString.replace("data-", "");

Consulte: .replace()documentos no MDN para obter informações e uso adicionais.

James Hill
fonte
17

Ex:-

var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);

Espero que isso funcione para você.

Ranjit Kanojia
fonte
11

Eu estava acostumado com o método String.Remove em C # (Sharp). Em Javascript, não há função de remoção para string, mas existe a função substr. Você pode usar a função substr uma ou duas vezes para remover caracteres da string. Você pode criar a seguinte função para remover caracteres no índice inicial até o final da sequência, assim como o método c # sobrecarrega primeiro a String.Remove (int startIndex):

function Remove(str, startIndex) {
    return str.substr(0, startIndex);
}

e / ou você também pode criar a seguinte função para remover caracteres no índice inicial e na contagem, assim como a segunda sobrecarga do método c # String.Remove (int startIndex, int count):

function Remove(str, startIndex, count) {
    return str.substr(0, startIndex) + str.substr(startIndex + count);
}

e então você pode usar essas duas funções ou uma delas para suas necessidades!

Exemplo:

alert(Remove("data-123", 0, 5));

Saída: 123


fonte
9

Essa pequena função que fiz sempre funcionou para mim :)

String.prototype.deleteWord = function (searchTerm) {
    var str = this;
    var n = str.search(searchTerm);
    while (str.search(searchTerm) > -1) {
        n = str.search(searchTerm);
        str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
    }
    return str;
}

// Use it like this:
var string = "text is the the cool!!";
string.deleteWord('the'); // Returns text is cool!!

Eu sei que não é o melhor, mas sempre funcionou para mim :)


fonte
Você está mostrando na sua resposta como a função de substituição da string funciona mais ou menos, mas, de fato, apenas o uso da função de substituição da string é um código muito mais simples e fácil do que o seu!
9
str.split('Yes').join('No'); 

Isso substituirá todas as ocorrências dessa sequência específica da sequência original.

ARCO
fonte
8

Usando match()e Number()para retornar uma numbervariável:

Number(("data-123").match(/\d+$/));

// strNum = 123

Aqui está o que a afirmação acima faz ... trabalhando de maneira intermediária:

  1. str.match(/\d+$/) - retorna uma matriz contendo correspondências para qualquer tamanho de número no final de str . Nesse caso, ele retorna uma matriz que contém um único item de sequência['123'] .
  2. Number()- converte para um tipo de número. Como a matriz retornada .match()contém um único elemento Number(), o número retornará.
Brett DeWoody
fonte