Làm cách nào để so sánh hai chuỗi trong JavaScript?

Trong bài viết này, chúng ta sẽ biết cách tối ưu để so sánh các chuỗi bằng các phương thức Javascript tích hợp & sẽ thấy cách triển khai của chúng thông qua các ví dụ. Câu hỏi là so sánh 2 chuỗi JavaScript một cách tối ưu. Để làm như vậy, đây là một số kỹ thuật được sử dụng nhiều nhất được thảo luận. Phương pháp thảo luận dưới đây được sử dụng trong các ví dụ sau.  

Phương thức chuỗi localeCompare(). Phương pháp này so sánh hai chuỗi trong miền địa phương hiện tại. Ngôn ngữ hiện tại dựa trên cài đặt ngôn ngữ của trình duyệt. Phương thức này trả về một số cho biết liệu chuỗi có trước, sau hay bằng với chuỗi so sánh theo thứ tự sắp xếp

cú pháp

string.localeCompare(String_2);

Thông số

  • Chuỗi_2. Tham số bắt buộc này chỉ định chuỗi được so sánh với

Vui lòng tham khảo bài viết Tham khảo đầy đủ về toán tử JavaScript để biết thêm chi tiết về toán tử

ví dụ 1. Ví dụ này so sánh 2 chuỗi bằng phương thức localeCompare() và trả về 0, -1 hoặc 1. Phương pháp này so sánh phân biệt chữ hoa chữ thường

HTML




console.log(s1 === s2); // true

Code language: JavaScript (javascript)
8

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
9

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
0____31

 

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
9

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
3

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
1

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
5

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
9

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
80

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
81

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
80

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
1

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
84____33____31

 

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
9

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
88

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
89

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
90

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
91

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
92

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
90

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
94

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
1

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
5

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
9

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
98

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
89

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
90

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
01

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
02

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
03

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
04

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
05

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
84____298

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
08

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
5

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
9

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
11

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
12

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
90

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
14

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
92

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
90

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
38

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
18

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
90

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
11

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
1

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
0 và

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
1 có cùng ký tự, nên chúng bằng nhau khi bạn so sánh chúng bằng toán tử

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
2

console.log(s1 === s2); // true

Code language: JavaScript (javascript)

Xem xét ví dụ sau

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)

Trong ví dụ này,

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
0 và

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
1 giống nhau. Nhưng so sánh s1 === s2 đánh giá là

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
5

Để hiểu cách thức hoạt động của nó, trước tiên bạn cần biết khái niệm về biểu đồ và kết hợp các ký tự

đồ thị là gì

Một grapheme là đơn vị chức năng nhỏ nhất của một hệ thống chữ viết

Ví dụ: chuỗi

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
6 có bốn chữ cái.

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
7,

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
8,

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
9 và

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
0 (hoặc

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
1 với

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
2). Cách bạn xem mỗi ký tự là một đơn vị viết được gọi là grapheme

Và một số biểu đồ có thể được biểu diễn bằng các chuỗi ký tự khác nhau

Có một số ký tự khi bạn đặt chúng sau một ký tự, nó sẽ thay đổi ký tự trước đó. Các ký tự này được gọi là các ký tự kết hợp

Ký tự kết hợp là gì

Ký tự kết hợp là ký tự áp dụng cho ký tự cơ sở tiền lệ để tạo biểu đồ

Trong ví dụ của chúng ta,

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
0 là một grapheme nguyên tử. Và bạn có thể mã hóa nó bằng chữ thường

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
1 (ký tự cơ bản) và ký tự kết hợp (◌́)

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
8

Trong JavaScript, ký tự é được biểu diễn như sau

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
9

Trong ví dụ này,

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
5 là chuỗi thoát Unicode của ký tự kết hợp ◌́

Ngoài ra, bạn có thể mã hóa cùng một biểu đồ é bằng cách sử dụng chữ thường

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
1 với ký tự cấp tính

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
2

Bây giờ, nếu bạn so sánh

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
7 và

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
8 của cùng một biểu đồ

const s1 = 'café'; const s2 = 'café'; console.log(s1===s2); // false

Code language: JavaScript (javascript)
0, bạn sẽ thấy rằng chúng không bằng nhau

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
6

Để so sánh các chuỗi này một cách an toàn, bạn sử dụng phương pháp

console.log(s1 === s2); // true

Code language: JavaScript (javascript)
80. Phương thức này trả về dạng chuẩn hóa Unicode của một chuỗi. Ví dụ

Làm cách nào để so sánh hai chuỗi bằng JavaScript?

Phương thức localeCompare() so sánh hai chuỗi ở ngôn ngữ hiện tại . Phương thức localeCompare() trả về thứ tự sắp xếp -1, 1 hoặc 0 (cho trước, sau hoặc bằng). Ngôn ngữ hiện tại dựa trên cài đặt ngôn ngữ của trình duyệt.

Làm cách nào để kiểm tra xem hai chuỗi có giống nhau trong JavaScript không?

ví dụ 1. Sử dụng toUpperCase() . === được sử dụng để kiểm tra xem cả hai chuỗi có giống nhau không

Chúng ta có thể sử dụng == để so sánh chuỗi không?

Bạn không nên sử dụng == (toán tử đẳng thức) để so sánh các chuỗi này vì chúng so sánh tham chiếu của chuỗi, i. e. liệu chúng có phải là cùng một đối tượng hay không. Mặt khác, phương thức equals() so sánh xem giá trị của các chuỗi có bằng nhau hay không và không phải chính đối tượng.

Làm cách nào để so sánh hai chuỗi trong JavaScript có phân biệt chữ hoa chữ thường?

"Toán tử đẳng thức nghiêm ngặt (===)" được sử dụng để so sánh các chuỗi dựa trên giá trị và kiểu chữ của chúng . Sử dụng "toán tử so sánh" cùng với thuộc tính "độ dài" để so sánh các chuỗi dựa trên độ dài của chúng. Sử dụng phương thức "localCompare()", bạn có thể so sánh các chuỗi dựa trên thứ tự bảng chữ cái.