Hướng dẫn javascript remove last line from string - javascript xóa dòng cuối cùng khỏi chuỗi

18

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Làm cách nào để loại bỏ dòng cuối cùng "\ n" khỏi một chuỗi, nếu tôi không biết chuỗi sẽ lớn như thế nào?

var tempHTML = content.document.body.innerHTML;
var HTMLWithoutLastLine = RemoveLastLine[tempHTML];

function RemoveLastLine[tempHTML]
{
   // code
} 

Đã hỏi ngày 30 tháng 11 năm 2012 lúc 14:42Nov 30, 2012 at 14:42

user1534664user1534664user1534664

3.1588 Huy hiệu vàng39 Huy hiệu bạc63 Huy hiệu Đồng8 gold badges39 silver badges63 bronze badges

4

Try:

if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}

Đã trả lời ngày 30 tháng 11 năm 2012 lúc 14:45Nov 30, 2012 at 14:45

Rekirerekirerekire

46.5K29 Huy hiệu vàng164 Huy hiệu bạc260 Huy hiệu Đồng29 gold badges164 silver badges260 bronze badges

3

Bạn có thể sử dụng một biểu thức chính quy [để được điều chỉnh tùy thuộc vào ý của bạn bằng "dòng cuối cùng"]:

return x.replace[/\r?\n?[^\r\n]*$/, ""];

Đã trả lời ngày 30 tháng 11 năm 2012 lúc 14:49Nov 30, 2012 at 14:49

Julien Royerjulien RoyerJulien Royer

1.4121 Huy hiệu vàng14 Huy hiệu bạc27 Huy hiệu đồng1 gold badge14 silver badges27 bronze badges

Một regex sẽ làm điều đó. Đây là đơn giản nhất:

string.replace[/\n.*$/, '']

Xem Regex101 để biết cách thức hoạt động

if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
1 phù hợp với đường ngắt cuối cùng trong chuỗi

if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
2 khớp với bất kỳ ký tự nào, giữa thời gian bằng không và không giới hạn [ngoại trừ các thiết bị đầu cuối dòng]. Vì vậy, điều này có hoạt động cho dù có nội dung trên dòng cuối cùng hay không

if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
3 để khớp với phần cuối của chuỗi

Đã trả lời ngày 20 tháng 12 năm 2017 lúc 2:25Dec 20, 2017 at 2:25

Marco Roymarco RoyMarco Roy

3.3616 huy hiệu vàng29 Huy hiệu bạc47 Huy hiệu đồng6 gold badges29 silver badges47 bronze badges

Trong trường hợp cụ thể của bạn, chức năng thực sự có thể trông giống như:

function[s]{
  return i = s.lastIndexOf["\n"]
    , s.substring[0, i]
}

Mặc dù có lẽ bạn cũng không muốn có khoảng trống ở cuối; Trong trường hợp này, một thay thế đơn giản có thể hoạt động tốt:

s.replace[/s+$/, '']

Tuy nhiên, hãy nhớ rằng các phiên bản mới của JavaScript [ES6+] cung cấp cách viết tắt của việc này với các hàm nguyên mẫu tích hợp [Trim, Trimleft, Trimright]ES6+] offer shorthand ways of doing this with built-in prototype functions [trim, trimLeft, trimRight]

s.trimRight[]

Cheers!

Đã trả lời ngày 28 tháng 7 năm 2016 lúc 19:34Jul 28, 2016 at 19:34

IVOIVOIvo

6.2681 Huy hiệu vàng24 Huy hiệu bạc43 Huy hiệu đồng1 gold badge24 silver badges43 bronze badges

Làm chuỗi thành một mảng và bật ra dòng cuối cùng.

Giá trị từ pop không được sử dụng, vì vậy nó đi đến khoảng trống.

function RemoveLastLine[x] {
    x = x.split['\n'];
    x.pop[];
    return x.join['\n']
}

Làm cho nó trở lại một chuỗi với mảng.join []

Đã trả lời ngày 21 tháng 4 lúc 20:48Apr 21 at 20:48

Ngày 12 tháng 11 năm 2021

Để xóa ký tự cuối cùng khỏi chuỗi trong JavaScript, bạn nên sử dụng phương thức

if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
4. Phải mất hai đối số: chỉ số bắt đầu và chỉ mục cuối.
if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
4 hỗ trợ lập chỉ mục âm, có nghĩa là
if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
6 tương đương với
if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
7.

let str = 'Masteringjs.ioF';
str.slice[0, -1]; // Masteringjs.io

Các phương thức thay thế

if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
4 thường dễ dàng hơn, tuy nhiên các phương pháp khác có sẵn là
if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
9 và
return x.replace[/\r?\n?[^\r\n]*$/, ""];
0.
if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
9 không có lập chỉ mục âm, vì vậy hãy chắc chắn sử dụng
return x.replace[/\r?\n?[^\r\n]*$/, ""];
2 khi xóa ký tự cuối cùng khỏi chuỗi.
return x.replace[/\r?\n?[^\r\n]*$/, ""];
0 lấy một chuỗi hoặc một biểu thức chính quy làm đối số
return x.replace[/\r?\n?[^\r\n]*$/, ""];
4 của nó. Sử dụng
return x.replace[/\r?\n?[^\r\n]*$/, ""];
5 làm đối số biểu thức chính quy khớp với ký tự cuối cùng của chuỗi, do đó
return x.replace[/\r?\n?[^\r\n]*$/, ""];
6 thay thế ký tự cuối cùng của chuỗi bằng một chuỗi trống.

let str = 'Masteringjs.ioF';
str.substring[0, str.length - 1]; // Masteringjs.io
str.substr[0, str.length - 1]; // Masteringjs.io
str.replace[/.$/, '']; // Masteringjs.io

Các tính năng tiên tiến

Với

return x.replace[/\r?\n?[^\r\n]*$/, ""];
0, bạn có thể chỉ định nếu ký tự cuối cùng nên được xóa tùy thuộc vào biểu thức chính quy. Ví dụ: giả sử bạn muốn xóa ký tự cuối cùng nếu ký tự cuối cùng là một số. Bạn có thể sử dụng
return x.replace[/\r?\n?[^\r\n]*$/, ""];
8 như hình dưới đây.

if[x.lastIndexOf["\n"]>0] {
    return x.substring[0, x.lastIndexOf["\n"]];
} else {
    return x;
}
0

Hướng dẫn cơ bản hơn

  • Tính trung bình của một mảng trong JavaScript
  • Hàm encodeuricomponent [] trong javascript
  • Cách kiểm tra xem một ngày nằm giữa hai ngày trong JavaScript
  • Kiểm tra chuỗi cho các số trong JavaScript
  • Đổi tên các biến khi sử dụng phá hủy đối tượng trong JavaScript
  • Chia trên nhiều ký tự trong JavaScript
  • Các đối tượng trống có phải là sự thật trong JavaScript?

Bài Viết Liên Quan

Chủ Đề