Saya memiliki string,, 12345.00
dan saya ingin mengembalikannya 12345.0
.
Saya telah melihat trim
, tetapi sepertinya itu hanya memangkas ruang kosong dan slice
yang saya tidak melihat bagaimana ini akan bekerja. Ada saran?
javascript
slice
trim
Phill Pafford
sumber
sumber
Math.round('0.5') === 1
;)Jawaban:
Anda dapat menggunakan fungsi substring :
Ini adalah jawaban yang diterima, tetapi sesuai dengan percakapan di bawah ini, sintaks slice jauh lebih jelas:
sumber
str = str.substring(0, str.length -1);
slice
&substring
semuanya hampir sama; kecuali bahwaslice()
menerima indeks negatif, relatif terhadap akhir string, tetapi tidaksubstring
, itu melemparout-of-bound
kesalahansubstring
11% lebih cepat darislice
. jsperf.com/js-slice-vs-substring-testAnda bisa menggunakan slice ! Anda hanya perlu memastikan bahwa Anda tahu cara menggunakannya. Positif # relatif terhadap awal, angka negatif relatif terhadap akhir.
sumber
substring
metode ini digunakan pada string dinamis juga? Dengan menggunakan str.length untuk mendapatkan panjang secara dinamis?Anda dapat menggunakan metode substring objek string JavaScript:
Itu tanpa syarat menghapus empat karakter terakhir dari string
s
.Namun, jika Anda ingin menghapus empat karakter terakhir secara kondisional , hanya jika mereka persis
_bar
:sumber
slice
lebih baik di sini.s.slice(0, -4)
Metode termudah adalah dengan menggunakan
slice
metode string, yang memungkinkan posisi negatif (sesuai dengan offset dari ujung string):Jika Anda memerlukan sesuatu yang lebih umum untuk menghapus semuanya setelah (dan termasuk) garis bawah terakhir, Anda bisa melakukan yang berikut (asalkan
s
dijamin mengandung setidaknya satu garis bawah):sumber
Untuk nomor seperti contoh Anda, saya akan merekomendasikan melakukan ini
substring
:Harap perhatikan bahwa ini sebenarnya akan membulatkan angka, yang saya bayangkan diinginkan tetapi mungkin tidak:
sumber
Menggunakan fungsi irisan JavaScript:
Ini dapat digunakan untuk menghapus '_bar' di akhir string, dengan panjang berapa pun.
sumber
Ekspresi reguler adalah yang Anda cari:
sumber
Coba ini:
sumber
Bagaimana tentang:
sumber
Gunakan regex:
sumber
sumber
sumber
Berikut adalah alternatif yang menurut saya tidak pernah saya lihat di jawaban lain, hanya untuk bersenang-senang.
Tidak terbaca atau sesederhana slice atau substring tetapi memungkinkan Anda untuk bermain dengan string menggunakan beberapa metode array yang bagus, jadi perlu diketahui.
sumber
sumber
Cara terpendek:
sumber
Jika Anda ingin melakukan pembulatan float generik, alih-alih hanya memotong karakter terakhir:
EDIT: Sepertinya ada fungsi bawaan untuk ini, seperti yang ditunjukkan Paolo. Solusi itu jelas jauh lebih bersih daripada solusi saya. Gunakan parseFloat diikuti oleh toFixed
sumber
sumber
https://jsfiddle.net/invos/w3zeqv6v/
/programming/34817546/javascript-how-to-delete-last-two-characters-in-a-string
"11.01 °C".slice(0,-2).trim()
sumber
Performa
Hari ini 2020.05.13 Saya melakukan tes solusi yang dipilih pada Chrome v81.0, Safari v13.1 dan Firefox v76.0 pada MacOs High Sierra v10.13.6.
Kesimpulan
slice(0,-1)
(D) cepat atau solusi tercepat untuk string pendek dan panjang dan dianjurkan secepat solusi lintas-browsersubstring
(C) dansubstr
(E) cepatDetail
Saya melakukan dua tes untuk solusi A , B , C , D , E ( ext ), F , G (saya)
Solusi disajikan dalam cuplikan di bawah ini
Tampilkan cuplikan kode
Berikut adalah contoh hasil untuk Chrome untuk string pendek
sumber
Sadarilah itu
String.prototype.{ split, slice, substr, substring }
beroperasi pada string yang dikodekan UTF-16Tidak ada jawaban sebelumnya yang sadar Unicode. String dikodekan sebagai UTF-16 di sebagian besar mesin JavaScript modern, tetapi poin kode Unicode yang lebih tinggi membutuhkan pasangan pengganti , sehingga metode string yang sudah ada sebelumnya beroperasi pada unit kode UTF-16, bukan titik kode Unicode.
Selain itu, jawaban RegExp tidak cocok dengan jeda baris di akhir dalam formulir saat ini:
Gunakan iterator string untuk beralih karakter
Kode Unicode-aware memanfaatkan iterator string; melihat
Array.from
dan...
menyebar .string[Symbol.iterator]
dapat digunakan (misalnya, bukanstring
) juga.Juga lihat Cara membagi string Unicode ke karakter dalam JavaScript .
Contoh:
Gunakan tanda
s
danu
pada aRegExp
The
dotAll
ataus
bendera merek.
sesuai garis karakter istirahat, paraunicode
atauu
bendera memungkinkan tertentu fitur Unicode terkait.Contoh:
Perhatikan bahwa beberapa grapheme terdiri dari lebih dari satu titik kode, misalnya
🏳️🌈
yang terdiri dari urutan🏳
(U + 1F3F3),VS16
(U + FE0F) ,ZWJ
(U + 200D) ,🌈
(U + 1F308). Di sini, bahkanArray.from
akan membaginya menjadi empat "karakter". Mencocokkan itu dimungkinkan dengan properti Unicode lolos proposal properti urutan .sumber
Dalam kasus di mana Anda ingin menghapus sesuatu yang dekat dengan akhir string (dalam kasus string berukuran variabel) Anda dapat menggabungkan slice () dan substr ().
Saya memiliki string dengan markup, dibangun secara dinamis, dengan daftar tag jangkar yang dipisahkan oleh koma. Tali itu seperti:
Untuk menghapus koma terakhir saya lakukan yang berikut:
sumber
Coba ini:
Anda juga dapat mencoba contoh langsung di http://jsfiddle.net/informativejavascript/F7WTn/87/ .
sumber
Maaf untuk graphomany saya tetapi posting ditandai 'jquery' sebelumnya. Jadi, Anda tidak dapat menggunakan slice () di dalam jQuery karena slice () adalah metode jQuery untuk operasi dengan elemen DOM, bukan substring ... Dengan kata lain jawaban @ Jon Erickson menyarankan solusi yang sangat sempurna.
Namun, metode Anda akan berfungsi di luar fungsi jQuery, di dalam Javascript sederhana. Perlu dikatakan karena diskusi terakhir dalam komentar, bahwa jQuery jauh lebih sering diperpanjang ekstensi JS daripada orang tuanya ECMAScript paling dikenal.
Di sini juga ada dua metode:
sebagai kami:
string.substring(from,to)
sebagai plus jika 'to' index nulled mengembalikan sisa string. jadi:string.substring(from)
positif atau negatif ...dan beberapa lainnya - substr () - yang menyediakan kisaran substring dan 'panjang' hanya bisa positif:
string.substr(start,length)
Juga beberapa pengelola menyarankan bahwa metode terakhir
string.substr(start,length)
tidak berfungsi atau bekerja dengan kesalahan untuk MSIE.sumber
String.prototype.slice
adalah metode aslislice()
metode jQuery untuk manipulasi DOM: jQuery API: .slice () . DAN PASTI, itu DAPAT DIGAMBAR seperti warisan polimorfik dari JS Array.slice (), tetapi ini adalah dua metode yang berbeda, dan saya pikir perlu membedakannya. Jadi itu hanya perkiraan untuk pengetahuan ini..slice
variabel yang merupakan string, itu akan melakukan apa yang diinginkan OP. Tidak masalah jika itu "di dalam jQuery" dan tidak ada cara itu bisa "mengganggu" dengan cara apa pun kecuali Anda menimpaString.prototype
jQuery, yang saya yakin akan mencegah APAPUN kode javascript bekerja. Jawaban Anda hanya mengatakan bahwa jawaban lain tidak baik dan argumen yang Anda berikan salah..data
manipulasi mewah dan berakhir dengan "string" ini), yang jika Anda memanggilnyaslice
, tidak akan melakukan apa yang Anda inginkan. Yang mengatakan, ini bukan jawaban yang sangat membantu.Gunakan substring untuk mendapatkan segalanya di sebelah kiri _bar. Tetapi pertama-tama Anda harus mendapatkan petunjuk _bar di string:
3 adalah awal dan 7 adalah panjangnya.
sumber