Bagaimana cara menghapus teks dari string?

577

Saya punya data-123string.

Bagaimana saya bisa menghapus data-dari string saat meninggalkan 123?

Michael Grigsby
sumber

Jawaban:

1157

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

Documents.


Untuk semua kejadian yang akan dibuang, gunakan:

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

PS: Fungsi ganti mengembalikan string baru dan membiarkan string asli tidak berubah, jadi gunakan nilai pengembalian fungsi setelah panggilan replace ().

Matematika
sumber
Bagaimana cara mengganti banyak ekspresi? Apakah Anda harus menggunakan beberapa panggilan .replace?
Dror Bar
124

Ini tidak ada hubungannya dengan jQuery. Anda dapat menggunakan replacefungsi JavaScript untuk ini:

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

Anda juga bisa memberikan regex ke fungsi ini. Dalam contoh berikut, ini akan menggantikan semuanya kecuali angka:

str = str.replace(/[^0-9\.]+/g, "");
James Johnson
sumber
Bisakah Anda jelaskan apa yang dilakukan regex? Saya tidak mengerti mengapa ini menggantikan string kecuali angka jika 0-9ditunjukkan.
terbaik
60

Anda dapat menggunakan "data-123".replace('data-','');, seperti yang disebutkan, tetapi karena replace()hanya menggantikan instance PERTAMA dari teks yang cocok, jika string Anda adalah sesuatu seperti "data-123data-"itu

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

hanya akan mengganti teks yang cocok pertama. Dan output Anda akan menjadi"123data-"

DEMO

Jadi, jika Anda ingin semua kecocokan teks diganti dalam string, Anda harus menggunakan ekspresi reguler dengan gbendera seperti itu:

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

Dan output Anda akan menjadi "123"

DEMO2

laaposto
sumber
28

Anda dapat menggunakan slice () untuk mengembalikan karakter antara awal hingga akhir (termasuk titik akhir)

   string.slice(start , end);

berikut ini beberapa exmp untuk menunjukkan cara kerjanya:

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

tuan shojaei
sumber
23

JavaScript lama yang biasa sudah mencukupi - jQuery tidak diperlukan untuk tugas sederhana seperti itu:

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

Lihat: .replace()dokumen pada MDN untuk informasi dan penggunaan tambahan.

James Hill
sumber
17

Ex:-

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

Semoga ini akan bekerja untuk Anda.

Ranjit Kanojia
sumber
11

Saya sudah terbiasa dengan metode C # (Sharp) String.Remove. Dalam Javascript, tidak ada fungsi hapus untuk string, tetapi ada fungsi substr. Anda dapat menggunakan fungsi substr satu atau dua kali untuk menghapus karakter dari string. Anda dapat membuat fungsi berikut untuk menghapus karakter pada indeks awal hingga akhir string, seperti metode c # yang pertama kali membebani String.Remove (int startIndex):

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

dan / atau Anda juga dapat membuat fungsi berikut untuk menghapus karakter pada indeks awal dan menghitung, seperti metode c # yang membebani String.Remove (int startIndex, int count):

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

dan kemudian Anda dapat menggunakan dua fungsi ini atau salah satunya untuk kebutuhan Anda!

Contoh:

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

Output: 123


sumber
9

Fungsi kecil yang saya buat ini selalu bekerja untuk saya :)

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

Saya tahu ini bukan yang terbaik, tetapi selalu berhasil untuk saya :)


sumber
Anda menunjukkan dalam jawaban Anda bagaimana fungsi penggantian string bekerja lebih atau kurang, tetapi memang hanya menggunakan fungsi ganti string jauh lebih sederhana dan lebih mudah kode dari milik Anda!
9
str.split('Yes').join('No'); 

Ini akan menggantikan semua kemunculan string tertentu dari string asli.

BUSUR
sumber
8

Menggunakan match()dan Number()mengembalikan numbervariabel:

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

// strNum = 123

Inilah yang dilakukan pernyataan di atas ... bekerja sebagai perantara:

  1. str.match(/\d+$/)- Mengembalikan susunan yang berisi kecocokan ke angka berapa pun di akhir str. Dalam hal ini mengembalikan array yang berisi item string tunggal ['123'].
  2. Number()- mengubahnya menjadi tipe angka. Karena array yang dikembalikan dari .match()berisi elemen tunggal Number()akan mengembalikan nomor tersebut.
Brett DeWoody
sumber