Saya punya dua variabel:
site1 = "www.somesite.com";
site2 = "www.somesite.com/";
Saya ingin melakukan sesuatu seperti ini
function someFunction(site)
{
// If the var has a trailing slash (like site2),
// remove it and return the site without the trailing slash
return no_trailing_slash_url;
}
Bagaimana saya melakukan ini?
Jawaban:
Coba ini:
sumber
return site.replace(/\/+$/, "");
Catatan: IE8 dan yang lebih lama tidak mendukung offset substruktur negatif. Gunakan
str.length - 1
sebaliknya jika Anda perlu mendukung browser kuno itu.sumber
ES6 / ES2015 menyediakan API untuk menanyakan apakah sebuah string diakhiri dengan sesuatu, yang memungkinkan penulisan fungsi yang lebih bersih dan lebih mudah dibaca.
sumber
Saya akan menggunakan ekspresi reguler:
Anda akan ingin memastikan bahwa variabel
site
adalah string.sumber
Cuplikan ini lebih akurat:
/
string, karena ini url yang valid.sumber
Saya tahu pertanyaannya adalah mengenai trailing slash tetapi saya menemukan posting ini selama pencarian saya untuk memangkas slash (baik di bagian ekor maupun kepala string literal), karena orang akan membutuhkan solusi ini saya memposting satu di sini:
PEMBARUAN :
seperti @Stephen R disebutkan dalam komentar, jika Anda ingin menghapus garis miring dan garis miring terbalik di bagian ekor dan kepala string literal, Anda akan menulis:
sumber
.replace(/^[\\/]+|[\\/]+$/g, '')
Cara termudah yang saya tahu adalah ini
Ini kemudian akan memeriksa a / di akhir dan jika ada menghapusnya jika tidak akan mengembalikan string Anda seperti sebelumnya
Hanya satu hal yang saya belum bisa mengomentari @ThiefMaster wow Anda tidak peduli tentang memori apakah Anda lol runnign substr hanya untuk jika?
Memperbaiki pendidikan untuk indeks berbasis nol pada string.
sumber
Berikut contoh url kecil.
catat url baru
sumber
Berdasarkan jawaban @vdegenne ... cara menghapus:
Garis miring tunggal:
theString.replace(/\/$/, '');
Garis miring tunggal atau berturut-turut:
theString.replace(/\/+$/g, '');
Slash tunggal terkemuka:
theString.replace(/^\//, '');
Garis miring tunggal atau berturut-turut:
theString.replace(/^\/+/g, '');
Garis miring utama dan belakang tunggal:
theString.replace(/^\/|\/$/g, '')
Garis miring pertama dan berturut-turut:
theString.replace(/^\/+|\/+$/g, '')
Untuk menangani keduanya garis miring dan kembali garis miring, ganti contoh
\/
dengan[\\/]
sumber
solusi lain.
sumber
sumber
subtring
? Selain itu, menghapus garis miring pertama dan semuanya setelahnya.substring
? Juga ya, saya bermaksud menghapus garis miring pertama dan semuanya setelah itu karena memang mengisi tagihan untuk pertanyaan dan contoh data yang diposting.