Bagaimana cara mengganti slash maju secara global dalam string JavaScript?
javascript
Babiker
sumber
sumber
"string".replace('/', 'ForwardSlash', 'g')
tetapi itu adalah argumen non-standar yang hanya berfungsi di Firefox afaik."string".replace(/\//g, 'ForwardSlash');
berfungsi tetapi hapus / g dari ini dan tidak bekerja./
. Tanpa g, itu hanya menggantikan satu instance. Dan jika Anda menghapus/g
Anda melanggar regex sepenuhnya sejak yang terakhir / adalah pembatas akhir.Gunakan regex literal dengan
g
modifier, dan lepas dari garis miring ke depan dengan garis miring terbalik sehingga tidak berbenturan dengan pembatas.sumber
Tanpa menggunakan regex (meskipun saya hanya akan melakukan ini jika string pencarian adalah input pengguna):
sumber
Apa ini yang kau inginkan?
sumber
Ini berhasil bagi saya untuk berubah
"//"
menjadi adil"/"
.sumber
Anda harus menggunakan garis miring untuk menghindari masalah lintas browser atau / / mengomentari.
sumber
Hai koreksi kecil dalam skrip di atas .. skrip di atas melewatkan karakter pertama saat menampilkan output.
sumber
Regex yang diusulkan
/\//g
tidak bekerja untuk saya; sisa baris (//g, replacement);
) dikomentari.sumber
Ini adalah ide Christopher Lincolns tetapi dengan kode yang benar:
Contoh penggunaan:
Penggantian string global Javascript tidak perlu rumit. Fungsi ini memecahkan masalah itu. Mungkin ada dampak kinerja yang kecil, tapi saya yakin itu bisa diabaikan.
Inilah fungsi alternatif , terlihat jauh lebih bersih, tetapi rata-rata sekitar 25 hingga 20 persen lebih lambat daripada fungsi di atas:
sumber
Anda dapat membuat
RegExp
objek agar lebih mudah dibacaJika Anda ingin mengganti semuanya, tambahkan
"g"
benderasumber