Khi làm việc với chương trình JavaScript, bạn có thể cần kiểm tra xem một chuỗi có chứa chuỗi con hay không. Một chuỗi con là một chuỗi bên trong một chuỗi khác.
Cụ thể, bạn có thể cần kiểm tra xem một từ có chứa một ký tự cụ thể hoặc một bộ ký tự cụ thể hay không.
Rất may, có một số cách nhanh chóng để đạt được điều này với JavaScript.
Trong bài viết này, bạn sẽ tìm hiểu hai cách khác nhau để kiểm tra xem một chuỗi có chứa chuỗi con hay không bằng cách sử dụng các phương thức JavaScript.
Cụ thể, bạn sẽ học:
- Cách sử dụng tích hợp
includes()
phương pháp Javascript. - Cách sử dụng tích hợp
indexOf()
phương pháp Javascript.
Đây là những gì chúng tôi sẽ đề cập chi tiết hơn:
- Phân tích cú pháp của
includes()
phương thức trong JavaScript- Cách kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể hay không bằng cách sử dụng
includes()
phương pháp
- Cách kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể hay không bằng cách sử dụng
- Phân tích cú pháp của
indexOf()
phương thức trong JavaScript- Cách kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể hay không bằng cách sử dụng
indexOf()
phương pháp
- Cách kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể hay không bằng cách sử dụng
- Cách thực hiện kiểm tra phân biệt chữ hoa chữ thường với
includes()
vàindexOf()
phương pháp
cái gì là includes()
Phương thức trong JavaScript? includes()
Phân tích cú pháp phương pháp
JavaScript includes()
đã được giới thiệu với ES6 và đây là cách phổ biến và hiện đại nhất để kiểm tra xem một chuỗi có chứa một ký tự cụ thể hay một chuỗi ký tự hay không.
Cú pháp chung cho includes()
phương pháp trông giống như thế này:
string.includes(substring, index);
Hãy chia nhỏ nó ra:
string
là từ bạn muốn tra cứu.includes()
là phương pháp bạn gọi từ mà bạn muốn tìm kiếm, trong trường hợp này làstring
.- Các
includes()
phương thức chấp nhận hai đối số – một đối số là bắt buộc và một đối số là tùy chọn. - Lập luận đầu tiên của
includes()
phương pháp chấp nhận làsubstring
và nó là cần thiết.substring
là ký tự hoặc chuỗi ký tự bạn đang kiểm tra xem chúng có tồn tại trongstring
. - Lập luận thứ hai của
includes()
phương pháp chấp nhận làindex
và nó là không bắt buộc.index
đề cập đến vị trí mà từ đó tìm kiếmsubstring
sẽ bắt đầu – giá trị mặc định làbởi vì lập chỉ mục trong ngôn ngữ lập trình bắt đầu tại
.
Giá trị trả về là một giá trị Boolean. Một giá trị Boolean có thể là true
hoặc false
tùy thuộc vào việc chuỗi con có hay không có trong chuỗi.
Một điều cần ghi nhớ là includes()
phương pháp là trường hợp nhạy cảm.
Cách kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể trong JavaScript hay không bằng cách sử dụng includes()
Phương pháp
Hãy xem một ví dụ về cách includes()
phương pháp hoạt động.
Đầu tiên, tôi tạo một biến chứa chuỗi Hello, World
– đây là chuỗi tôi muốn tìm kiếm thông qua:
let string= "Hello, World";
Tiếp theo, tôi đã tạo một biến với chuỗi con Hello
– đây là chuỗi con tôi muốn tìm trong chuỗi gốc:
let string= "Hello, World";
let substring = "Hello";
Tiếp theo, tôi sẽ kiểm tra xem substring
có mặt trong string
sử dụng includes()
phương thức và in kết quả ra bàn điều khiển:
let string= "Hello, World";
let substring = "Hello";
console.log(string.includes(substring));
// output
// true
Giá trị trả về là true
Ý nghĩa Hello
có mặt trong biến string
.
Như đã đề cập ở phần trên, các includes()
phương pháp phân biệt chữ hoa chữ thường.
Xem điều gì xảy ra khi tôi thay đổi giá trị của substring
từ Hello
đến hello
:
let string= "Hello, World";
let substring = "hello";
console.log(string.includes(substring));
// output
// false
Giá trị trả về, trong trường hợp này, là false
vì không có chuỗi con hello
với một chữ thường h
. Vì vậy, hãy ghi nhớ điều này khi làm việc với includes()
phương pháp – nó phân biệt giữa chữ hoa và chữ thường.
Bây giờ, hãy xem cách sử dụng includes()
phương thức với đối số thứ hai, index
.
Xin nhắc lại, đối số thứ hai chỉ định vị trí mà bạn muốn bắt đầu tìm kiếm chuỗi con.
Hãy làm như vậy string
biến từ các ví dụ trước:
let string= "Hello, World";
Tôi sẽ thay đổi giá trị của substring
biến thành H
:
let string= "Hello, World";
let substring = "H";
Và tôi sẽ chỉ định việc tìm kiếm chuỗi con bắt đầu từ vị trí :
let string= "Hello, World";
let substring = "H";
console.log(string.includes(substring,0));
// output
// true
Giá trị trả về là true
bởi vì chuỗi con H
đang ở vị trí chỉ số trong chuỗi
Hello, World
.
Hãy nhớ rằng, chữ cái đầu tiên trong một chuỗi có vị trí là vị trí thứ hai của
1
và như thế.
cái gì là indexOf()
Phương thức trong JavaScript? indexOf()
Phân tích cú pháp phương pháp
Tương tự như includes()
phương pháp, JavaScript indexOf()
phương thức kiểm tra xem một chuỗi có bao gồm một chuỗi con hay không.
Cú pháp chung cho indexOf()
phương pháp trông giống như thế này:
string.indexOf(substring, index);
Hãy chia nhỏ nó ra:
string
là từ bạn muốn tra cứu.index0f()
là phương pháp bạn gọi từ mà bạn muốn tìm kiếm, trong trường hợp này,string
.- Các
includes()
phương thức nhận hai đối số – một đối số là bắt buộc và một đối số là tùy chọn. - Lập luận đầu tiên cho
indexOf()
phương pháp làsubstring
và nó là cần thiết.substring
là ký tự hoặc chuỗi ký tự bạn đang tìm kiếm. - Lập luận thứ hai cho
indexOf()
phương pháp làindex
và nó là không bắt buộc.index
đề cập đến vị trí mà từ đó tìm kiếmsubstring
sẽ bắt đầu. Giá trị mặc định làbởi vì lập chỉ mục trong ngôn ngữ lập trình bắt đầu tại
.
Sự khác biệt giữa hai phương thức là giá trị trả về của chúng.
Các includes()
phương thức trả về một giá trị Boolean (một giá trị hoặc là true
hoặc false
), trong khi indexOf()
phương thức trả về một số.
Số này sẽ là vị trí chỉ mục bắt đầu nơi chuỗi con bạn đang tìm kiếm được tìm thấy trong chuỗi. Giá trị trả về sẽ là -1
nếu không tìm thấy chuỗi con trong chuỗi.
Và cũng giống như includes()
phương pháp, các indexOf()
phương pháp là trường hợp nhạy cảm.
Cách kiểm tra xem một chuỗi có chứa một chuỗi con cụ thể trong JavaScript hay không bằng cách sử dụng indexOf()
Phương pháp
Hãy sử dụng cùng một ví dụ từ trước đó để xem làm thế nào indexOf()
phương pháp hoạt động.
let string= "Hello, World";
let substring = "H";
Có biến string
với chuỗi ban đầu và biến substring
với chuỗi con bạn đang tìm kiếm.
let string= "Hello, World";
let substring = "H";
console.log(string.indexOf(substring));
// output
// 0
đầu ra là là vị trí bắt đầu của chuỗi con mà bạn đang tìm kiếm.
Trong trường hợp này, giá trị bạn đang tìm kiếm là một ký tự.
Hãy thay đổi giá trị của substring
từ H
đến Hello
:
let string= "Hello, World";
let substring = "Hello";
console.log(string.indexOf(substring));
// output
// 0
Giá trị trả về lại là từ
index0f()
trả về bắt đầu vị trí của chuỗi con bạn đang tìm kiếm. Vì ký tự đầu tiên của chuỗi con nằm ở Chức vụ,
indexOf()
lợi nhuận .
Bây giờ, hãy thay đổi giá trị của substring
từ Hello
đến hello
với một chữ thường h
:
let string= "Hello, World";
let substring = "hello";
console.log(string.indexOf(substring));
// output
// -1
Giá trị trả về là -1
. Như đã đề cập trước đây, index0f()
phân biệt chữ hoa chữ thường, vì vậy nó không thể tìm thấy chuỗi con hello
với chữ thường h
. Và khi indexOf()
không thể tìm thấy chuỗi con đã cho, nó trả về -1
.
Cuối cùng, bạn có thể chỉ định giá trị chỉ mục mà bạn muốn bắt đầu tìm kiếm bằng cách chuyển đối số thứ hai indexOf()
chấp nhận.
let string= "Hello, World";
let substring = "hello";
console.log(string.indexOf(substring,1));
// output
// -1
Giả sử bạn muốn bắt đầu tìm kiếm từ vị trí 1
. Giá trị trả về là -1
vì vị trí bắt đầu của chuỗi con mà bạn đang tìm kiếm là . Không tìm thấy kết quả khớp chính xác tại vị trí
1
Vì thế indexOf()
lợi nhuận -1
.
Cách thực hiện kiểm tra không phân biệt chữ hoa chữ thường với includes()
và indexOf()
phương pháp
Cho đến nay, bạn đã thấy rằng includes()
và indexOf()
phương pháp không phân biệt chữ hoa chữ thường.
Nhưng điều gì sẽ xảy ra khi bạn muốn thực hiện kiểm tra phân biệt chữ hoa chữ thường?
Để thực hiện kiểm tra phân biệt chữ hoa chữ thường và xem liệu chuỗi con có tồn tại trong một chuỗi hay không, bạn sẽ cần chuyển đổi cả chuỗi gốc và chuỗi con thành chữ thường bằng cách sử dụng toLowerCase()
phương thức JavaScript trước khi gọi một trong hai phương thức.
Đây là cách bạn sẽ làm điều đó bằng cách sử dụng includes()
phương pháp:
let string= "Hello, World";
let substring = "hello";
console.log(string.toLowerCase().includes(substring.toLowerCase()));
// output
// true
Theo mặc định, giá trị trả về sẽ là false
bởi vì chuỗi gốc chứa chữ hoa H
trong khi chuỗi con chứa chữ thường h
. Sau khi chuyển đổi cả hai chuỗi thành chữ thường, bạn không phải lo lắng về cách viết hoa của chuỗi gốc và chuỗi con mà bạn đang tìm kiếm.
Và đây là cách bạn sẽ làm điều tương tự bằng cách sử dụng indexOf()
phương pháp:
let string= "Hello, World";
let substring = "hello";
console.log(string.toLowerCase().indexOf(substring.toLowerCase()));
// output
// 0
Theo mặc định, giá trị trả về sẽ là -1
bởi vì bản gốc
chuỗi và chuỗi con bạn đang tìm kiếm có các trường hợp khác nhau.
Sau khi sử dụng toLowerCase()
phương pháp, các indexOf()
phương thức trả về vị trí bắt đầu của chuỗi con.
Phần kết luận
Và bạn có nó rồi đấy! Bây giờ bạn đã biết cách kiểm tra xem một chuỗi có chứa chuỗi con hay không trong JavaScript.
Để tìm hiểu thêm về JavaScript, hãy xem Chứng nhận cấu trúc dữ liệu và thuật toán JavaScript của freeCodeCamp.
Đó là một chương trình giảng dạy miễn phí, được cân nhắc kỹ lưỡng và có cấu trúc, nơi bạn sẽ học một cách tương tác. Cuối cùng, bạn cũng sẽ xây dựng 5 dự án để nhận chứng chỉ và củng cố kiến thức của mình.
Cảm ơn vì đã đọc!