Pertanyaan JavaScript chop / slice / potong karakter terakhir dalam string


Saya memiliki sebuah string, 12345.00, dan saya ingin kembali 12345.0.

Saya telah melihat trim, tapi sepertinya itu hanya memotong spasi dan slice yang saya tidak melihat bagaimana ini akan bekerja. Ada saran?


1480
2018-06-04 20:31


asal


Jawaban:


Anda dapat menggunakan substring fungsi:

var str = "12345.00";
str = str.substring(0, str.length - 1); // "12345.0"

Ini adalah jawaban yang diterima, tetapi sesuai dengan percakapan di bawah ini, mengiris sintaks lebih jelas:

var str = "12345.00";
str = str.slice(0, -1); // "12345.0"

2448
2018-06-04 20:35



Kamu dapat memakai mengiris! Anda hanya harus memastikan Anda tahu cara menggunakannya. Positif # relatif terhadap awal, angka negatif relatif terhadap akhir.

js>"12345.00".slice(0,-1)
12345.0

1154
2018-06-04 21:41



Anda dapat menggunakan substring metode objek string JavaScript:

s = s.substring(0, s.length - 4)

Tanpa syarat menghapus empat karakter terakhir dari string s.

Namun, jika Anda mau secara kondisional hapus empat karakter terakhir, hanya jika mereka persis  _bar:

var re = /_bar$/;
s.replace(re, "");

248
2017-08-30 03:08



Metode termudah adalah menggunakan slice metode string, yang memungkinkan posisi negatif (terkait dengan offset dari akhir string):

var s = "your string";
var withoutLastFourChars = s.slice(0, -4);

Jika Anda membutuhkan sesuatu yang lebih umum untuk menghapus semuanya setelah (dan termasuk) garis bawah terakhir, Anda dapat melakukan hal-hal berikut (asalkan panjang s dijamin mengandung setidaknya satu garis bawah):

var s = "your_string";
var withoutLastChunk = s.slice(0, s.lastIndexOf("_"));
// withoutLastChunk == "your"

149
2017-08-30 10:15



Untuk nomor seperti contoh Anda, saya akan merekomendasikan melakukan hal ini substring:

alert(parseFloat('12345.00').toFixed(1)); // 12345.0

Perlu dicatat bahwa ini sebenarnya akan memutar nomor, meskipun, yang saya bayangkan diinginkan tetapi mungkin tidak:

alert(parseFloat('12345.46').toFixed(1)); // 12345.5

63
2018-06-04 20:42



Menggunakan fungsi slice JavaScript:

var string = 'foo_bar';
string = string.slice(0, -4); // Slice off last four characters here

Ini bisa digunakan untuk menghapus '_bar' di ujung string, berapa pun panjangnya.


19
2018-02-27 11:14



Ekspresi reguler adalah apa yang Anda cari:

var str = "foo_bar";
alert(str.replace(/_bar$/, ""));

13
2017-08-30 03:09



Bagaimana tentang:

var myString = "12345.00";
myString.substring(0, myString.length - 1);

8
2018-06-04 20:38



"a string".match(/(.*).$/)[1] // => a strin

"a string".match(/(.*).$/) // returns ["a string", "a strin"]

"a string".match(/(.*).{2}$/)[1] // to get two chars off => a stri
  1. (. *), menangkap karakter apa saja beberapa kali
  2. ., cocok dengan karakter terakhir, dalam hal ini
  3. $, cocok dengan ujung string

6
2017-12-28 04:38



Gunakan regex:

var aStr = "12345.00";
aStr = aStr.replace(/.$/, '');

6
2017-07-29 04:58



debris = string.split("_") //explode string into array of strings indexed by "_"

debris.pop(); //pop last element off the array (which you didn't want)

result = debris.join("_"); //fuse the remainng items together like the sun

4
2018-05-27 10:47