Mengapakah Kaedah JavaScript's replace() Kadangkala Menggantikan Hanya Contoh Pertama Corak?

Mary-Kate Olsen
Lepaskan: 2024-10-23 07:55:29
asal
133 orang telah melayarinya

Why Does JavaScript's replace() Method Sometimes Replace Only the First Instance of a Pattern?

Memahami Penggantian Terpilih JavaScript Menggunakan Ganti

Apabila menggunakan kaedah replace() JavaScript untuk memanipulasi rentetan, anda mungkin perasan bahawa ia sering menggantikan sahaja contoh pertama watak atau corak tertentu. Tingkah laku ini boleh membingungkan, terutamanya jika anda berhasrat untuk menggantikan semua kejadian.

Contoh:

Pertimbangkan coretan kod berikut:

var date = $('#Date').val(); // "12/31/2009"
var id = 'c_' + date.replace("/", ''); // "c_1231/2009"
Salin selepas log masuk

Seperti yang anda perhatikan, penggantian hanya mengalih keluar contoh pertama bagi / aksara, meninggalkan contoh kedua tidak berubah. Untuk memahami sebabnya, kita perlu menyelidiki cara kerja kaedah replace().

RegExp dan Bendera Global:

replace() menggunakan ungkapan biasa (RegExp ) untuk mencari corak sasaran dalam rentetan. Secara lalai, ia hanya sepadan dengan kejadian pertama. Untuk menggantikan semua kejadian, kita perlu menentukan bendera global dengan pengubah suai "g".

Cara Mengganti Secara Global:

Terdapat dua cara untuk menggunakan global bendera:

  • Menggunakan bendera g dalam ungkapan biasa:

    var id = 'c_' + date.replace(new RegExp("/", "g"), '');
    Salin selepas log masuk
  • Menggunakan bendera g sebagai hujah kedua untuk menggantikan() :

    var id = 'c_' + date.replace(/\//g, '');
    Salin selepas log masuk

Kedua-dua kaedah akan mengarahkan replace() untuk mencari dan menggantikan semua contoh aksara atau corak yang ditentukan, seperti berikut:

var id = 'c_' + date.replace(/\//g, ''); // "c_12312009"
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah Kaedah JavaScript's replace() Kadangkala Menggantikan Hanya Contoh Pertama Corak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!