LẤY KÝ TỰ CUỐI TRONG CHUỖI JAVASCRIPT

Tôi đang chú ý tryên ổn, nhưng mà có vẻ nhỏng nó chỉ cắt xén khoảng chừng white và slicetôi ko thấy nó đã chuyển động như thế nào. Bất kỳ đề xuất?


Đây là câu vấn đáp được đồng ý, nhưng theo các cuộc đối thoại dưới đây, cú pháp lát ví dụ rộng nhiều:


Kheu - cam kết hiệu lát cắt sạch sẽ hơn các đối với tôi. Trước trên đây tôi đã thực hiện phiên bản chuỗi nhỏ. Cảm ơn!
Hãy tha thứ cho tôi giả dụ tôi không đúng cơ mà bạn ko yêu cầu gán giá trị của str.sub chuỗi mang lại str nữa chứ? Thíchstr = str.substring(0, str.length -1);
Các cách làm slice& substringgần như kiểu như nhau; xung quanh việc slice()đồng ý một chỉ số âm, tương quan mang lại cuối chuỗi, nhưng không hẳn là lỗi substring, nó đã out-of-boundgây nên lỗi
Trong ngôi trường đúng theo bất kể nhiều người đang từ hỏi, substringlà nhanh khô rộng 11% slice. jsperf.com/js-slice-vs-substring-chạy thử
chuỗi bé là tối ưu hóa vi mô điên rồ mà lại tôi không cho là chúng ta nên có tác dụng. Tối đa hóa cho năng lực gọi thứ nhất. Sau kia buổi tối ưu hóa quả treo rẻ ví như bắt buộc.

Quý khách hàng hoàn toàn có thể áp dụng lát ! Bạn chỉ cần chắc chắn là rằng chúng ta biết phương pháp thực hiện nó. Số dương tất cả tương quan cho đầu, số âm tất cả liên quan cho cuối.

Bạn đang xem: Lấy ký tự cuối trong chuỗi javascript

js>"12345.00".slice(0,-1)12345.0
So cùng với chiến thuật được gật đầu đồng ý, đó là bí quyết tkhô hanh lịch hơn và rất có thể được sử dụng trong cả cùng với các chuỗi được sản xuất cồn
SameerAlibnhì Tôi gật đầu với các bạn, mà lại ko substringthể sử dụng phương thức này trên những chuỗi động? Bằng bí quyết thực hiện str.length nhằm auto mang chiều dài?
KevinBeal các bạn chỉ hoàn toàn có thể áp dụng F12 trong những trình chú ý chính với nhập nó vào Bảng điều khiển và tinh chỉnh, chuyển động trên bất kỳ trang như thế nào cùng thậm chí là chúng ta có ngữ chình họa cùng rất có thể mua thỏng viện.
quý khách hoàn toàn có thể thực hiện thủ tục chuỗi bé của những đối tượng chuỗi JavaScript:

s = s.substring(0, s.length - 4)Nó vô điều kiện loại bỏ tứ ký tự cuối cùng khỏi chuỗi s.

Tuy nhiên, nếu như bạn muốn loại trừ bao gồm điều kiện tư ký từ sau cuối, chỉ Khi bọn chúng bao gồm xác _bar :

var re = /_bar$/;s.replace(re, "");
Phương thơm pháp dễ dàng và đơn giản nhất là thực hiện slicethủ tục của chuỗi, được cho phép những địa điểm âm (tương ứng với độ lệch từ lúc cuối chuỗi):

const s = "your string";const withoutLastFourChars = s.slice(0, -4);Nếu bạn cần một cái gì đó bao quát rộng nhằm thải trừ đều thiết bị sau (cùng bao gồm) vệt gạch ốp bên dưới sau cùng, bạn cũng có thể triển khai các thao tác làm việc sau (miễn là sđược đảm bảo an toàn gồm ít nhất một vệt gạch dưới):


const s = "your_string";const withoutLastChunk = s.slice(0, s.lastIndexOf("_"));console.log(withoutLastChunk);

Xin xem xét rằng điều này thực thụ đang làm cho tròn số, mặc dù, điều cơ mà tôi tưởng tượng là mong muốn tuy nhiên rất có thể không:


Đó không hẳn là 1 giả định sai lạc, OP. nói đến chuỗi. Của các bạn là một mang định sai trái bởi vì OP.. không nói tới làm cho tròn số.

let string = "foo_bar";string = string.slice(0, -4); // Slice off last four characters hereconsole.log(string);
Giải pháp của người sử dụng công dụng, tuy thế câu vấn đáp của Alex trọn vẹn rộng. Vì vậy, tôi vẫn chấp nhận anh ấy. Cảm ơn!
Điều này xử lý một sự việc liên quan của việc sa thải tất cả điều kiện cầm bởi vì giảm cụt một cách mù quáng
Tôi say mê điều đó chính vì tuy vậy .splice () các bạn sẽ kiếm tìm thấy một phương pháp để áp dụng biểu thức thiết yếu quy.

Không đọc dễ hoặc đơn giản và dễ dàng nhỏng lát hoặc chuỗi bé tuy vậy không được cho phép bạn đùa cùng với chuỗi bằng một vài thủ tục mảng đẹp nhất, rất rất đáng để tìm hiểu.

Xem thêm: get text option selected jquery


debris = string.split("_") //explode string inkhổng lồ 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
Nếu bạn có nhu cầu làm cho tròn số phao đồn thông thường, nắm vì chưng chỉ cắt bớt cam kết từ bỏ cuối cùng:

var float1 = 12345.00, float2 = 12345.4567, float3 = 12345.982;var MoreMath = /** * Rounds a value lớn the specified number of decimals *
return float value rounded lớn nrDecimals decimals */ round: function (value, nrDecimals) var x = nrDecimals > 0 ? 10 * parseInt(nrDecimals, 10) : 1; return Math.round(value * x) / x; MoreMath.round(float1, 1) => 12345.0MoreMath.round(float2, 1) => 12345.5MoreMath.round(float3, 1) => 12346.0EDIT: Có vẻ nhỏng vĩnh cửu một tác dụng được gây ra đến việc này, như Paolo đã cho thấy. Giải pháp kia ví dụ là không bẩn hơn tôi các. Sử dụng parseFloat theo sau là toFixed


https://jsfiddle.net/invos/w3zeqv6v/

/programming/34817546/javascript-how-to-delete-last-two-char character-in-a- chuỗi

Chỉ đề nghị thực hiện trim nếu như bạn không muốn không khí

"11.01 °C".slice(0,-2).trim()


Hiệu suất

Hôm ni 2020.05.13 Tôi thực hiện bình chọn những giải pháp được chọn trên Chrome v81.0, Safari v13.1 cùng Firefox v76.0 bên trên MacOs High Sierra v10.13.6.

Kết luận

những slice(0,-1) (D) là nhanh hao xuất xắc phương án nkhô cứng tốt nhất cho những chuỗi ngắn hạn cùng lâu năm cùng nó được lời khuyên như thể chiến thuật qua trình để mắt nhanhchiến thuật dựa trên substring(C) vàsubstr (E) là nkhô giòn chóngcác chiến thuật dựa vào biểu thức chủ yếu quy (A, B) là chậm rãi / mức độ vừa phải nhanhcác chiến thuật B, F với G chậm rì rì cho các chuỗi dàigiải pháp F chậm nhất so với chuỗi ngắn, G muộn nhất so với chuỗi dài

*

Chi tiết

Tôi thực hiện hai bài xích kiểm soát cho những phương án A , B , C , D , E ( ext ), F , G (my)

Các phương án được trình bày trong khúc trích bên dưới đây


Hiển thị đoạn mã


function A(str) return str.replace(/.$/, "");function B(str) return str.match(/(.*).$/)<1>;function C(str) return str.substring(0, str.length - 1);function D(str) return str.slice(0, -1); function E(str) return str.substr(0, str.length - 1);function F(str) let s= str.split(""); s.pop(); return s.join("");function G(str) let s=""; for(let i=0; istr.length-1; i++) s+=str; return s; // ---------// TEST// ---------let log = (f)=>console.log(`$f.name: $f("12345.00")`);.map(f=>log(f));This snippet only presents soutions
Chạy đoạn mãẨn kết quả
Mlàm việc rộng lớn đoạn trích

Dưới đấy là hiệu quả ví dụ đến Chrome cho chuỗi ngắn

*


— Kamil Kiełczewski nguồn
1

Xin để ý rằng String.prototype. split, slice, substr, substring vận động bên trên những chuỗi được mã hóa UTF-16

Không bao gồm câu trả lời như thế nào trước đây là nhấn thức về Unicode. Các chuỗi được mã hóa dưới dạng UTF-16 trong hầu hết những lý lẽ JavaScript tân tiến, dẫu vậy các điểm mã Unicode cao hơn yên cầu những cặp thay thế sửa chữa , bởi vì vậy các thủ tục chuỗi cũ hơn, chuyển động trên các đơn vị chức năng mã UTF-16, chưa hẳn các điểm mã Unicode.


const string = "ẞ