Phương thức chuỗi JavaScript

Phương pháp chuỗi giúp bạn xử lý chuỗi.

Phương pháp và thuộc tính chuỗi

Giá trị nguyên thuần, chẳng hạn như "Bill Gates", không thể có thuộc tính và phương pháp (vì chúng không phải là đối tượng).

Nhưng thông qua JavaScript, phương pháp và thuộc tính cũng có thể được sử dụng cho giá trị nguyên thuần, vì khi thực hiện phương pháp và thuộc tính, JavaScript sẽ coi giá trị nguyên thuần là đối tượng.

Độ dài chuỗi

length Thuộc tính trả về độ dài của chuỗi:

Ví dụ

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

Thử nghiệm trực tiếp

Tìm kiếm chuỗi trong chuỗi

indexOf() phương pháp trả về văn bản được chỉ định trong chuỗiLần đầu tiênvị trí xuất hiện (vị trí):

Ví dụ

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

Thử nghiệm trực tiếp

JavaScript tính toán vị trí từ số 0.

0 là vị trí đầu tiên trong chuỗi, 1 là vị trí thứ hai, 2 là vị trí thứ ba ...

lastIndexOf() phương pháp trả về vị trí của văn bản được chỉ định trong chuỗiCuối cùngvị trí xuất hiện lần đầu:

Ví dụ

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");

Thử nghiệm trực tiếp

nếu không tìm thấy văn bản indexOf()lastIndexOf() cả hai đều trả về -1.

Ví dụ

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");

Thử nghiệm trực tiếp

Cả hai phương pháp đều chấp nhận tham số thứ hai là vị trí bắt đầu tìm kiếm.

Ví dụ

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);

Thử nghiệm trực tiếp

lastIndexOf() Phương pháp tìm kiếm theo hướng sau (từ cuối đến đầu), điều này có nghĩa là: Nếu tham số thứ hai là 50, thì bắt đầu tìm kiếm từ vị trí 50 cho đến điểm bắt đầu của chuỗi.

Ví dụ

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China", 50);

Thử nghiệm trực tiếp

Tìm kiếm chuỗi trong chuỗi

search() Phương pháp tìm kiếm chuỗi cụ thể trong chuỗi và trả về vị trí khớp:

Ví dụ

var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");

Thử nghiệm trực tiếp

Bạn có nhận ra không?

hai phương pháp này,indexOf()search(), làBằng nhau.

Cả hai phương pháp này là không bằng nhau. Khác biệt ở chỗ:

  • Hàm search() không thể thiết lập tham số bắt đầu thứ hai.
  • Hàm indexOf() không thể thiết lập các giá trị tìm kiếm mạnh mẽ hơn (biểu thức chính quy).

Bạn sẽ học đượcBiểu thức chính quymà bạn sẽ học được các giá trị tìm kiếm mạnh mẽ hơn.

Lấy phần chuỗi

Có ba phương pháp lấy phần chuỗi:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

Hàm slice()

slice() Lấy một phần chuỗi nào đó và trả về phần đã lấy ra trong chuỗi mới.

Phương pháp này thiết lập hai tham số: chỉ số bắt đầu (vị trí bắt đầu), chỉ số kết thúc (vị trí kết thúc).

Ví dụ này cắt đoạn từ vị trí 7 đến vị trí 13 trong chuỗi:

Ví dụ

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

Kết quả của res là:

Banana

Thử nghiệm trực tiếp

Nếu một tham số là giá trị âm, thì sẽ tính toán từ cuối chuỗi.

Ví dụ này cắt đoạn từ vị trí -12 đến vị trí -6 trong chuỗi:

Ví dụ

var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7);

Kết quả của res là:

Banana

Thử nghiệm trực tiếp

Nếu bỏ qua tham số thứ hai, thì phương pháp này sẽ cắt phần còn lại của chuỗi:

Ví dụ

var res = str.slice(7);

Thử nghiệm trực tiếp

hoặc tính toán từ cuối:

Ví dụ

var res = str.slice(-13);

Thử nghiệm trực tiếp

Lưu ý:Vị trí âm không áp dụng cho Internet Explorer 8 và các phiên bản trước.

Hàm substring()

substring() Tương tự slice().

Khác biệt ở chỗ substring() Không thể chấp nhận chỉ số âm.

Ví dụ

var str = "Apple, Banana, Mango";
var res = str.substring(7,13);

Kết quả của res là:

Banana

Thử nghiệm trực tiếp

Nếu bỏ qua tham số thứ hai, thì hàm này sẽ cắt phần còn lại của chuỗi: substring() Cắt phần còn lại của chuỗi.

Hàm substr()

substr() Tương tự slice().

Khác biệt ở chỗ tham số thứ hai quy định phần cần lấy raĐộ dài.

Ví dụ

var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

Kết quả của res là:

Banana

Thử nghiệm trực tiếp

Nếu bỏ qua tham số thứ hai, thì hàm substr() sẽ cắt phần còn lại của chuỗi.

Ví dụ

var str = "Apple, Banana, Mango";
var res = str.substr(7);

Thử nghiệm trực tiếp

Kết quả của res là:

Banana, Mango

Nếu tham số đầu tiên là giá trị âm, thì sẽ tính toán vị trí từ cuối chuỗi.

Ví dụ

var str = "Apple, Banana, Mango";
var res = str.substr(-5);

Thử nghiệm trực tiếp

Kết quả của res là:

Mango

Tham số thứ hai không thể là giá trị âm vì nó định nghĩa là độ dài.

Thay thế nội dung chuỗi

replace() Cách sử dụng giá trị khác thay thế giá trị được chỉ định trong chuỗi:

Ví dụ

str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3School");

Thử nghiệm trực tiếp

replace() phương thức sẽ không thay đổi chuỗi được gọi. Nó trả về chuỗi mới.

Mặc định,replace() chỉ thay thế phần chập đầu tiên:

Ví dụ

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");

Thử nghiệm trực tiếp

Mặc định,replace() phân biệt chữ hoa và chữ thường. Do đó không thay thế phần chập MICROSOFT:

Ví dụ

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3School");

Thử nghiệm trực tiếp

Nếu muốn thực hiện thay thế không phân biệt chữ hoa và chữ thường, hãy sử dụng biểu thức chính quy /i(không phân biệt chữ hoa và chữ thường):

Ví dụ

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");

Thử nghiệm trực tiếp

Lưu ý rằng biểu thức chính quy không có dấu ngoặc kép.

Nếu muốn thay thế tất cả các phần chập, hãy sử dụng thuộc tính của biểu thức chính quy g Biểu tượng (sử dụng cho tìm kiếm toàn bộ):

Ví dụ

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");

Thử nghiệm trực tiếp

Bạn sẽ học thêm về biểu thức chính quy trong chương này về JavaScript.Biểu thức chính quycủa nội dung.

Chuyển đổi thành chữ hoa và chữ thường

Bằng cách toUpperCase() Chuyển đổi chuỗi thành chữ hoa:

Ví dụ

var text1 = "Hello World!";       // chuỗi
var text2 = text1.toUpperCase();  // text2 là chuỗi được chuyển đổi thành chữ hoa của text1

Thử nghiệm trực tiếp

Bằng cách toLowerCase() Chuyển đổi chuỗi thành chữ thường:

Ví dụ

var text1 = "Hello World!";       // chuỗi
var text2 = text1.toLowerCase();  // text2 là chuỗi được chuyển đổi thành chữ thường của text1

Thử nghiệm trực tiếp

Phương thức concat()

concat() Kết nối hai hoặc nhiều chuỗi:

Ví dụ

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);

Thử nghiệm trực tiếp

concat() Phương thức có thể được sử dụng để thay thế toán tử cộng. Dưới đây là hai dòng tương đương:

Ví dụ

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

Tất cả các phương thức chuỗi sẽ trả về chuỗi mới. Chúng không thay đổi chuỗi ban đầu.

Để nói một cách chính xác: chuỗi là không thay đổi: chuỗi không thể thay đổi, chỉ có thể thay thế.

String.trim()

trim() Phương thức này xóa các dấu cách ở hai đầu của chuỗi:

Ví dụ

var str = "       Hello World!        ";
alert(str.trim());

Cảnh báo:Internet Explorer 8 hoặc các phiên bản thấp hơn không hỗ trợ trim() phương thức.

Thử nghiệm trực tiếp

Để hỗ trợ IE 8, bạn có thể kết hợp với biểu thức chính quy replace() Phương thức thay thế:

Ví dụ

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

Thử nghiệm trực tiếp

Bạn cũng có thể sử dụng phương án replace trên để thêm hàm trim vào JavaScript String.prototype:

Ví dụ

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
var str = "       Hello World!        ";
alert(str.trim());

Thử nghiệm trực tiếp

Lấy ký tự từ chuỗi

Đây là hai phương thức để lấy ký tự từ chuỗi:An toànPhương thức:

  • charAt(position)
  • charCodeAt(position)

charAt() phương thức

charAt() Phương thức trả về chuỗi tại vị trí chỉ định:

Ví dụ

var str = "HELLO WORLD";
str.charAt(0);            // Trả về H

Thử nghiệm trực tiếp

Phương thức charCodeAt()

charCodeAt() Phương thức trả về mã unicode của ký tự tại vị trí chỉ định trong chuỗi:

Ví dụ

var str = "HELLO WORLD";
str.charCodeAt(0);         // Trả về 72

Thử nghiệm trực tiếp

Quyền truy cập thuộc tính (Property Access)

ECMAScript 5 (2009) cho phép quyền truy cập thuộc tính chuỗi [ ]:

Ví dụ

var str = "HELLO WORLD";
str[0];                   // Trả về H

Thử nghiệm trực tiếp

Việc sử dụng quyền truy cập thuộc tính có vẻ không rất đáng tin cậy:

  • Không áp dụng cho Internet Explorer 7 hoặc các phiên bản sớm hơn
  • Nó làm cho chuỗi trông giống như một mảng (thực chất không phải)
  • Nếu không tìm thấy ký tự[ ] Trả về undefinedcharAt() Trả về chuỗi rỗng.
  • Nó là chỉ đọc.str[0] = "A" Sẽ không xảy ra lỗi (nhưng cũng sẽ không hoạt động!)

Ví dụ

var str = "HELLO WORLD";
str[0] = "A";             // Không xảy ra lỗi nhưng sẽ không hoạt động
str[0];                   // Trả về H

Thử nghiệm trực tiếp

Lưu ý:Nếu bạn muốn xử lý chuỗi theo cách của mảng, bạn có thể chuyển nó thành mảng trước.

Chuyển chuỗi thành mảng

Có thể split() Chuyển chuỗi thành mảng:

Ví dụ

var txt = "a,b,c,d,e";   // Chuỗi
txt.split(",");          // Chia bằng dấu phẩy
txt.split(" ");          // Chia bằng khoảng trống
txt.split("|");          // Chia bằng dấu chấm phẩy

Thử nghiệm trực tiếp

Nếu bỏ qua ký tự phân cách, mảng được trả về sẽ chứa toàn bộ chuỗi trong index [0].

Nếu ký tự phân cách là "\"", mảng được trả về sẽ là mảng chứa các ký tự đơn lẻ:

Ví dụ

var txt = "Hello";       // Chuỗi
txt.split("\""

Thử nghiệm trực tiếp

Tài liệu tham khảo đầy đủ String

Để có tài liệu tham khảo đầy đủ, vui lòng truy cập trang web đầy đủ của chúng tôi Tài liệu tham khảo chuỗi JavaScript.

Cuốn sách này bao gồm mô tả và ví dụ về tất cả các thuộc tính và phương thức của chuỗi.