Tìm ký tự xuất hiện nhiều nhất trong chuỗi JavaScript

Xử lý chuỗi là một trong những tác vụ quan trọng hàng đầu mà lập trình viên javascript cần nắm vững. Dưới đây là các phương thức, phương pháp xử lý và thao tác với chuỗi trong javascript cơ bản.

Đếm số ký tự trong chuỗi javascript

Để đếm số ký tự trong một chuỗi javascript, ta có thể sử dụng thuộc tính length như sau:

var chuoi = 'tôi học javascript';
var l = chuoi.length;
console.log(l);

Truy xuất phần tử tại một vị trí trong javascript

Để lấy ra ký tự tại vị trí thứ i trong chuỗi, ta có thể sử dụng phương thức charAt() như sau:

var chuoi = 'tôi học javascript';
var c = chuoi.charAt(0);
console.log(c);

Trong ví dụ này, chúng ta vừa lấy ra được ký tự thứ 0 của chuỗi 'tôi học javascript', kết quả là chuỗi 't'.

Tìm vị trí trí xuất hiện chuỗi con trong javascript

chúng ta sẽ dùng phương thức indexOf(), search() để tìm vị trí xuất hiện của một chuỗi trong chuỗi cho sẵn.

Ví dụ: Tìm vị trí xuất hiện của chuỗi 'học' trong chuỗi 'tôi học javascript'

var chuoi = 'tôi học javascript';
var vt = chuoi.indexOf('học');
console.log(vt);

hoặc 

var chuoi = 'tôi học javascript';
var vt = chuoi.search('học');
console.log(vt);

Lưu ý: Nếu không tìm thấy vị trí xuất hiện nào, phương thức indexOf() và search() sẽ trả về giá trị -1.

- Một chuỗi sẽ có các phương thức và thuộc tính, với việc truy cập vào các phương thức và thuộc tính của chuỗi, ta có thể làm được những công việc như: đếm số lượng ký tự của chuỗi, chuyển toàn bộ ký tự của chuỗi về dạng chữ in hoa, chuyển toàn bộ ký tự của chuỗi về dạng chữ thường, trích xuất một chuỗi con bên trong chuỗi, ....

- Tuy nhiên, để sử dụng được các phương thức và thuộc tính này thì trước hết bạn cần phải hiểu rõ khái niệm chỉ số của ký tự trong chuỗi

- Trong một chuỗi, các ký tự được sắp xếp theo thứ tự vị trí tăng dần từ 1 đến hết, ví dụ:

ChuỗiTÀILIỆUHỌCHTMLVị trí1234567891011121314151617

- Nhưng khi làm việc với các phương thức thì không dùng đến vị trí mà là dùng đến chỉ số
(chỉ số của ký tự luôn có giá trị nhỏ hơn vị trí của ký tự một đơn vị), ví dụ:

ChuỗiTÀILIỆUHỌCHTMLChỉ số012345678910111213141516Vị trí1234567891011121314151617

- Dưới đây là một số phương thức và thuộc tính thường được sử dụng nhất trong việc xử lý chuỗi:

Phương thức / Thuộc tínhMô tả chức nănglengthTrả về số lượng ký tự của chuỗitoUpperCase()Chuyển toàn bộ ký tự của chuỗi về dạng chữ in hoatoLowerCase()Chuyển toàn bộ ký tự của chuỗi về dạng chữ thườngconcat()Nối các chuỗi lại với nhauindexOf()Trả về chỉ số của chuỗi trùng khớp được tìm thấy đầu tiên
(Khi bạn muốn tìm một chuỗi con nào đó trong chuỗi)lastIndexOf()Trả về chỉ số của chuỗi trùng khớp được tìm thấy sau cùng
(Khi bạn muốn tìm một chuỗi con nào đó trong chuỗi)charAt()Trích xuất một ký tự trong chuỗisubstring()Trích xuất một chuỗi con trong chuỗisubstr()Trích xuất một chuỗi con trong chuỗireplace()Thay thế một nội dung nào đó trong chuỗi bằng nội dung mới

1) Đếm số lượng ký tự của chuỗi

- Để đếm số lượng ký tự của một chuỗi, ta truy cập vào thuộc tính length của chuỗi đó.


Xem ví dụ

2) Chuyển chuỗi về dạng chữ in hoa

- Để chuyển toàn bộ ký tự của một chuỗi về dạng chữ in hoa, ta truy cập vào phương thức toUpperCase() của chuỗi đó.


Xem ví dụ

3) Chuyển chuỗi về dạng chữ thường

- Để chuyển toàn bộ ký tự của một chuỗi về dạng chữ thường, ta truy cập vào phương thức toLowerCase() của chuỗi đó.


Xem ví dụ

4) Nối các chuỗi lại với nhau

- Thay vì sử dụng toán tử + để nối các chuỗi lại với nhau thì ta cũng có thể sử dụng phương thức concat() với cú pháp như sau để nối chuỗi:

string1.concat(string2, string3, ..., stringN)


Xem ví dụ

5) Xác định chỉ số của một chuỗi con

- Ta có thể xác định được chỉ số của một chuỗi con nào đó nằm bên trong chuỗi bằng cách sử dụng phương thức indexOf() hoặc lastIndexOf().

- Cú pháp:

string.indexOf(chuỗi mà bạn xác định chỉ số của nó  trong chuỗi string)
string.lastIndexOf(chuỗi mà bạn xác định chỉ số của nó trong chuỗi string)

- Phương thức indexOf() sẽ trả về chỉ số của chuỗi trùng khớp được tìm thấy đầu tiên.

- Phương thức lastIndexOf() sẽ trả về chỉ số của chuỗi trùng khớp được tìm thấy cuối cùng.


Xem ví dụ

- Ta có thể thêm vào phương thức indexOf() và lastIndexOf() tham số thứ hai để xác định vị trí bắt đầu tìm kiếm chuỗi.

Xác định chỉ số của chuỗi học đầu tiên trong chuỗi Tài liệu học HTML và tài liệu học CSS
(Lưu ý: Bắt đầu tìm kiếm từ vị trí của ký tự có chỉ số là 21)


Xem ví dụ

Phương thức indexOf() và lastIndexOf() sẽ trả về -1 nếu như không tìm thấy chuỗi trùng khớp

6) Trích xuất một ký tự trong chuỗi

- Ta có thể trích xuất một ký tự nào đó trong chuỗi bằng cách sử dụng phương thức charAt() với cú pháp như sau:

string.charAt(chỉ số của ký tự mà bạn muốn trích xuất)

Trích xuất ký tự có chỉ số là 4 trong chuỗi text


Xem ví dụ

7) Trích xuất một chuỗi con

- Ta có thể trích xuất được một chuỗi con bên trong chuỗi bằng phương thức substring() hoặc substr()

7.1) Phương thức substring()

- Cú pháp:

0
  • start là chỉ số của ký tự bắt đầu được trích xuất
  • end là chỉ số của ký tự kết thúc việc trích xuất


Xem ví dụ

- Dưới đây là ví dụ minh họa để giúp bạn thấy rõ cách trích xuất chuỗi của phương thức substring()

Chỉ số012345678910111213141516ChuỗiTÀILIỆUHỌCHTML

7.2) Phương thức substr()

- Cú pháp:

2
  • start là chỉ số của ký tự bắt đầu được trích xuất
  • length là số lượng ký tự được trích xuất


Xem ví dụ

- Dưới đây là ví dụ minh họa để giúp bạn thấy rõ cách trích xuất chuỗi của phương thức substr()

Chỉ số012345678910111213141516ChuỗiTÀILIỆUHỌCHTML

8) Thay thế nội dung trong chuỗi

- Để thay thế một nội dung nào đó trong chuỗi bằng nội dung mới, ta sử dụng phương thức replace() với cú pháp như sau:

4

Nội dung ở đây có thể là một ký tự hoặc một chuỗi ký tự.

Thay thế chữ "học" thành chữ "tham khảo"


Xem ví dụ

8.1) Thay thế tất cả nội dung trùng khớp

- Mặc định, phương thức replace() chỉ thay thế nội dung trùng khớp được tìm thấy đầu tiên.

Trong chuỗi text bên dưới có hai chữ "học", tuy nhiên chỉ có chữ học đầu tiên là được đổi thành chữ "tham khảo"


Xem ví dụ

- Để thay thế tất cả nội dung trùng khớp thì ta sử dụng biểu thức chính quy sau:

Xem ví dụ

8.2) Thay thế nội dung không phân biệt trường hợp chữ hoa hay thường

- Mặc định, phương thức replace() có phân biệt trường hợp chữ in hoa và chữ thường


Xem ví dụ

- Để thay thế nội dung trùng khớp mà không phân biệt trường hợp chữ in hoa hay chữ thường thì ta sử dụng biểu thức chính quy sau:

Xem ví dụ

- Và để thay thế tất cả nội dung trùng khớp mà không phân biệt trường hợp chữ in hoa hay chữ thường thì ta sử dụng biểu thức chính quy sau: