Tìm kiếm chuỗi JavaScript

Phương pháp JavaScript để tìm kiếm chuỗi:

  • String.indexOf()
  • String.lastIndexOf()
  • String.startsWith()
  • String.endsWith()

String.indexOf()

indexOf() Phương pháp trả về văn bản cụ thể trong chuỗiLần đầu tiênXuất hiện (vị trí) của chỉ số:

Mô hình

let str = "Please locate where 'locate' occurs!";
str.indexOf("locate")    // trả về 7

Thử ngay

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 ......

String.lastIndexOf()

lastIndexOf() Phương thức trả về vị trí xuất hiện lần cuối của văn bản chỉ định trong chuỗi:

Mô hình

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("locate")    // Trả về 21

Thử ngay

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

Mô hình

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("Bill")    // Trả về -1

Thử ngay

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

Mô hình

let str = "Please locate where 'locate' occurs!";
str.indexOf("locate", 15)    // Trả về 21

Thử ngay

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

Mô hình

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("locate", 15)    // Trả về 7

Thử ngay

String.search()

search() Phương thức tìm kiếm giá trị chỉ định trong chuỗi và trả về vị trí khớp:

Mô hình

let str = "Please locate where 'locate' occurs!";
str.search("locate")     // Trả về 7

Thử ngay

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

indexOf()search() Cả hai phương thức này, có bằng nhau không?

Họ chấp nhận cùng các tham số và trả về cùng giá trị?

Cả hai phương thức này không bằng nhau. Sự khác biệt như sau:

  • search() Phương thức không thể chấp nhận tham số vị trí bắt đầu thứ hai.
  • indexOf() Phương thức không thể sử dụng giá trị tìm kiếm mạnh mẽ (biểu thức chính quy).

Bạn sẽ học thêm về biểu thức chính quy trong các chương sau.

String.match()

Phương thức match() tìm kiếm phần tử khớp trong chuỗi dựa trên biểu thức chính quy và trả về các phần tử khớp dưới dạng đối tượng Array.

Ví dụ 1

Tìm kiếm "ain" trong chuỗi:

let text = "Mưa ở SPAIN chủ yếu ở đồng bằng";
text.match(/ain/g)    // Trả về mảng [ain,ain,ain]

Thử ngay

Hãy học thêm về biểu thức chính quy trong chương JS RegExp.

Nếu biểu thức chính quy không chứa dấu hiệu修饰符 g (thực hiện tìm kiếm toàn cục), phương thức match() sẽ chỉ trả về phần tử khớp đầu tiên trong chuỗi.

Ngữ pháp

chuỗi.match(regexp)
regexp Bắt buộc. Là giá trị cần tìm kiếm, là biểu thức chính quy.
Trả về: Mảng, chứa các phần tử khớp, mỗi phần tử khớp tương ứng với một mục, nếu không tìm thấy phần tử khớp, thì sẽ là null.

Ví dụ 2

Thực hiện tìm kiếm toàn cục không phân biệt chữ hoa chữ thường cho "ain":

let text = "Mưa ở SPAIN chủ yếu ở đồng bằng";
text.match(/ain/gi)   // Trả về mảng [ain, AIN, ain, ain]

Thử ngay

String.includes()

Nếu chuỗi chứa giá trị được chỉ định,includes() Phương pháp trả về true.

Mô hình

let text = "Hello world, welcome to the universe.";
text.includes("world")    // Trả về true

Thử ngay

Hỗ trợ trình duyệt

Internet Explorer không hỗ trợ String.includes().

Chrome IE Firefox Safari Opera
Chrome 41 Edge 12 Firefox 40 Safari 9 Opera 28
Tháng 3 năm 2015 Tháng 7 năm 2015 Tháng 8 năm 2015 Tháng 10 năm 2015 Tháng 3 năm 2015

Ngữ pháp

chuỗi.includes(searchvalue, start)
searchvalue Chắc chắn. Chuỗi cần tìm kiếm.
start Tùy chọn. Mặc định là 0. Vị trí bắt đầu tìm kiếm.
Trả về: Nếu chuỗi chứa giá trị đó, thì trả về truenếu không, trả về false.
Phiên bản JS: ES6 (2015)

Kiểm tra chuỗi có chứa "world" từ vị trí 12 bắt đầu tìm kiếm:

let text = "Hello world, welcome to the universe.";
text.includes("world", 12)    // Trả về false

Thử ngay

String.startsWith()

Nếu chuỗi bắt đầu bằng giá trị được chỉ định, thì startsWith() Phương pháp trả về truenếu không, trả về false:

Mô hình

let text = "Hello world, welcome to the universe.";
text.startsWith("Hello")   // Trả về true

Thử ngay

Ngữ pháp

chuỗi.startsWith(searchvalue, start)

Giá trị参數

参數 Mô tả
searchvalue Chắc chắn. Giá trị cần tìm kiếm.
start Tùy chọn. Mặc định là 0. Vị trí bắt đầu tìm kiếm.

Mô hình

let text = "Hello world, welcome to the universe.";
text.startsWith("world")    // Trả về false
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 5)    // Trả về false
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)    // Trả về true

Thử ngay

Chú ý:startsWith() Phương thức phân biệt chữ hoa và chữ thường.

Internet Explorer không hỗ trợ startsWith() Phương thức.

Phiên bản trình duyệt hỗ trợ hoàn toàn đầu tiên là:

Chrome IE Firefox Safari Opera
Chrome 41 Edge 12 Firefox 17 Safari 9 Opera 28
Tháng 3 năm 2015 Tháng 7 năm 2015 Tháng 8 năm 2015 Tháng 10 năm 2015 Tháng 3 năm 2015

String.endsWith()

Nếu chuỗi kết thúc bằng giá trị được chỉ định, thì endsWith() Phương pháp trả về truenếu không, trả về false:

Mô hình

Kiểm tra chuỗi có kết thúc bằng "Gates" không:

var text = "Bill Gates";
text.endsWith("Gates")    // Trả về true

Thử ngay

Ngữ pháp

chuỗi.endsWith(searchvalue, length)

Giá trị参數

参數 Mô tả
searchvalue Chắc chắn. Giá trị cần tìm kiếm.
length Tùy chọn. Độ dài cần tìm kiếm.

Tìm kiếm chuỗi bắt đầu bằng "world" trong 11 ký tự đầu tiên của chuỗi:

let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11)    // Trả về true

Thử ngay

Chú ý:endsWith() Phương thức phân biệt chữ hoa và chữ thường.

Internet Explorer không hỗ trợ endsWith() Phương thức.

Phiên bản trình duyệt đầu tiên hỗ trợ phương pháp này là:

Chrome IE Firefox Safari Opera
Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
Tháng 5 năm 2016 Tháng 4 năm 2017 Tháng 6 năm 2017 Tháng 9 năm 2016 Tháng 6 năm 2016

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

Để có tài liệu tham khảo đầy đủ, vui lòng truy cập tài liệu tham khảo đầy đủ của chúng tôi Sách hướng dẫn chuỗi JavaScript.

Sách hướng dẫn 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 chuỗi.