Bir dizeden metin nasıl kaldırılır?


Yanıtlar:


1157

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

Dokümanlar.


Atılan tüm tekrarlamalar için:

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

Not: replace işlevi yeni bir dize döndürür ve orijinal dizeyi değiştirmeden bırakır, bu nedenle replace () çağrısından sonra işlev dönüş değerini kullanın.


Birden çok ifade nasıl değiştirilir? Birden çok .replace çağrısı kullanmak zorunda mısınız?
Dror Bar

124

Bunun jQuery ile bir ilgisi yok. Bunun için JavaScript replaceişlevini kullanabilirsiniz :

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

Bu işleve bir normal ifade de iletebilirsiniz. Aşağıdaki örnekte, sayısal dışında her şeyin yerini alacaktı:

str = str.replace(/[^0-9\.]+/g, "");

Normal ifadenin ne yaptığını açıklayabilir misiniz? 0-9Belirtilirse neden sayılar dışında dize yerine neden anlamıyorum .
rotimi-best

60

"data-123".replace('data-','');Belirtildiği gibi kullanabilirsiniz , ancak dizeniz o zamanki gibi bir şeyse, eşleşen metnin İLK örneğini replace()değiştirdiği gibi kullanabilirsiniz"data-123data-"

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

yalnızca eşleşen ilk metnin yerini alacaktır. Ve çıktınız"123data-"

DEMO

Bu nedenle, metnin tüm eşleşmelerinin dizede değiştirilmesini istiyorsanız, gbayrak gibi normal bir ifade kullanmanız gerekir :

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

Ve çıktınız "123"

demo2 dosyası


28

başlangıçtan bitişe (dahil bitiş noktası) arasındaki karakterleri geri döndüren dilim () kullanabilirsiniz

   string.slice(start , end);

nasıl çalıştığını göstermek için bazı exmp İşte:

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"

gösteri


23

Sade eski JavaScript yeterli olacaktır - jQuery böyle basit bir görev için gerekli değildir:

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

Ek bilgi ve kullanım için bkz .replace(). MDN belgeleri .


17

Ör: -

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

Umarım bu işinize yarayacaktır.


11

C # (Sharp) String.Remove yöntemine kullanıldım. Javascript'te dize için kaldırma işlevi yoktur, ancak substr işlevi vardır. Dizeden karakterleri kaldırmak için substr işlevini bir veya iki kez kullanabilirsiniz. C # yönteminin ilk aşırı String.Remove (int startIndex) gibi, başlangıç ​​dizinindeki karakterleri dizenin sonuna kadar kaldırmak için aşağıdaki işlevi yapabilirsiniz:

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

ve / veya c # yönteminin ikinci aşırı yükü String.Remove (int startIndex, int count) gibi başlangıç ​​dizini ve sayımındaki karakterleri kaldırmak için aşağıdaki işlevi de yapabilirsiniz:

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

ve sonra bu iki işlevi veya bunlardan birini ihtiyaçlarınız için kullanabilirsiniz!

Misal:

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

Çıktı: 123


9

Yaptığım bu küçük fonksiyon her zaman benim için çalıştı :)

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!!

En iyisi olmadığını biliyorum, ama her zaman benim için çalıştı :)


Cevabınızda dize değiştirme işlevinin nasıl daha az veya daha az çalıştığını gösteriyorsunuz, ancak gerçekten sadece dize değiştirme işlevini kullanmak sizinkinden çok daha basit ve daha kolay kod!

9
str.split('Yes').join('No'); 

Bu, özgün dizeden söz konusu dizenin tüm tekrarlarının yerini alacaktır.


8

Kullanılması match()ve Number()bir dönüş numberdeğişkeni:

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

// strNum = 123

İşte yukarıdaki ifadenin yaptığı ... orta-kapalı çalışma:

  1. str.match(/\d+$/)- sonunda herhangi bir sayı uzunluğundaki eşleşmeleri içeren bir dizi döndürür str. Bu durumda, tek bir dize öğesi içeren bir dizi döndürür ['123'].
  2. Number()- bir sayı türüne dönüştürür. Döndürülen dizi .match()tek bir öğe içerdiğinden Number()sayıyı döndürür.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.