Trong javascript, làm cách nào để cắt trang trí đúng cách?javascript cần phải cắt một cách thích hợp
tôi có như sau:
var s1 = "this is a test~";
var s = s1.rtrim('~')
nhưng đã không thành công
Trong javascript, làm cách nào để cắt trang trí đúng cách?javascript cần phải cắt một cách thích hợp
tôi có như sau:
var s1 = "this is a test~";
var s = s1.rtrim('~')
nhưng đã không thành công
Sử dụng một RegExp. Đừng quên để thoát khỏi các nhân vật đặc biệt.
s1 = s1.replace(/~+$/, ''); //$ marks the end of a string
// ~+$ means: all ~ characters at the end of a string
Hoàn hảo, cảm ơn! –
Một giải pháp sử dụng một biểu thức chính quy:
"hi there~".replace(/~*$/, "")
Không có trim, LTRIM, hoặc các chức năng rtrim trong Javascript. Nhiều thư viện cung cấp cho họ, nhưng nói chung họ sẽ giống như thế:
str.replace(/~*$/, '');
Đối với Trims đúng, sau đây nói chung là nhanh hơn so với một regex vì cách regex giao dịch với các nhân vật cuối trong hầu hết các trình duyệt:
function rtrim(str, ch)
{
for (i = str.length - 1; i >= 0; i--)
{
if (ch != str.charAt(i))
{
str = str.substring(0, i + 1);
break;
}
}
return str;
}
Bạn có thể sửa đổi nguyên mẫu Chuỗi nếu muốn. Việc sửa đổi nguyên mẫu String thường bị cau mày, nhưng cá nhân tôi thích phương pháp này, vì nó làm cho mã IMHO sạch hơn.
String.prototype.rtrim = function(s) {
return this.replace(new RegExp(s + "*$"),'');
};
Sau đó gọi ...
var s1 = "this is a test~";
var s = s1.rtrim('~');
alert(s);
Đây là cũ, tôi biết. Nhưng tôi không thấy có vấn đề gì với chất nền ...?
function rtrim(str, length) {
return str.substr(0, str.length - length);
}
Vấn đề duy nhất ở đây là có thể có bất kỳ số ký tự nào ở cuối chuỗi ... nói thay vì 'đây là test ~' chúng đã xảy ra để có 'đây là test ~~~' hoặc thậm chí không có 'đây là test'. Trường hợp của bạn tuy nhiên làm việc độc đáo để cắt tỉa một số lượng ký tự được đặt từ chuỗi, bất kể ký tự có thể là gì – bobkingof12vs
IMO đây là cách tốt nhất để làm một quyền cắt/trái và do đó, có một chức năng đầy đủ cho cắt tỉa (kể từ javascript hỗ trợ string.trim
natively) ví dụ
String.prototype.rtrim = function (s) {
if (s == undefined)
s = '\\s';
return this.replace(new RegExp("[" + s + "]*$"), '');
};
String.prototype.ltrim = function (s) {
if (s == undefined)
s = '\\s';
return this.replace(new RegExp("^[" + s + "]*"), '');
};
Cách sử dụng:
var str1 = ' jav '
var r1 = mystring.trim(); // result = 'jav'
var r2 = mystring.rtrim(); // result = ' jav'
var r3 = mystring.rtrim(' v'); // result = ' ja'
var r4 = mystring.ltrim(); // result = 'jav '
Lượt truy cập hàng đầu trên google: http://blog.stevenlevithan.com/archives/faster-trim-javascript – Tessmore