18/08/2018, 11:02

Các phương thức xử lý chuỗi trong JavaScript

- Chuỗi (hay còn được gọi là chuỗi ký tự) là một dãy các ký tự, ví dụ: Tai Chuỗi có 3 ký tự Tai lieu Chuỗi có 8 ký tự Tai lieu hoc Chuỗi có 12 ký tự Tai lieu hoc JavaScript Chuỗi có 23 ký tự - Một chuỗi sẽ có các phương thức và thuộc tính , với việc truy cập ...

- Chuỗi (hay còn được gọi là chuỗi ký tự) là một dãy các ký tự, ví dụ:

Tai Chuỗi có 3 ký tự
Tai lieu Chuỗi có 8 ký tự
Tai lieu hoc Chuỗi có 12 ký tự
Tai lieu hoc JavaScript Chuỗi có 23 ký tự

- Một chuỗi sẽ có các phương thứcthuộ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ỗi T À I L I U H C H T M L
Vị trí 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

- 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ỗi T À I L I U H C H T M L
Vị trí 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

- 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ính Mô tả chức năng
length Trả về số lượng ký tự của chuỗi
toUpperCase() Chuyển toàn bộ ký tự của chuỗi về dạng chữ in hoa
toLowerCase() Chuyển toàn bộ ký tự của chuỗi về dạng chữ thường
concat() Nối các chuỗi lại với nhau
indexOf() 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ỗi
substring() Trích xuất một chuỗi con trong chuỗi
substr() Trích xuất một chuỗi con trong chuỗi
replace() 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 đó.

Ví dụ
<script>
    var text = "Tai lieu hoc JavaScript";
    var a = text.length; //Biến a sẽ có giá trị là 23

    var b = "JavaScript".length; //Biến b sẽ có giá trị là 10
</script>
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 đó.

Ví dụ
<script>
    var text = "Tai lieu hoc JavaScript";
    var a = text.toUpperCase(); //Biến a sẽ có giá trị là TAI LIEU HOC JAVASCRIPT

    var b = "JavaScript".toUpperCase(); //Biến b sẽ có giá trị là JAVASCRIPT    
</script>
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 đó.

Ví dụ
<script>
    var text = "Tai lieu hoc JavaScript";
    var a = text.toUpperCase(); //Biến a sẽ có giá trị là tai lieu hoc javascript

    var b = "JavaScript".toUpperCase(); //Biến b sẽ có giá trị là javacript
</script>
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)
Ví dụ
<script>
    var a = "Lập ";
    var b = "trình";
    var c = " web";

    var str1 = a.concat(b, c); //Tương tự "Lập " + "trình" + " web"
    var str2 = a.concat(b, " di động"); //Tương tự "Lập " + "trình" + " di động"
    var str3 = "Java".concat("Script"); //Tương tự "Java" + "Script"
</script>
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.

Ví dụ
<script>
    var text = "Tài liệu học HTML và tài liệu học CSS";
    var a = text.indexOf("học"); //Biến a sẽ có giá trị là 9
    var b = text.lastIndexOf("học"); //Biến b sẽ có giá trị là 30
</script>
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.

Ví dụ

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)

<script>
    var text = "Tài liệu học HTML và tài liệu học CSS";
    var a = text.indexOf("học", 21); //Biến a sẽ có giá trị là 30
</script>
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)
Ví dụ

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

<script>
    var text = "TÀI LIỆU HỌC HTML";
    var a = text.charAt(4);
</script>
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:

string.substring(start, end)
  • 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
Ví dụ
<script>
    var text = "TÀI LIỆU HỌC HTML";
    var a = text.substring(4, 14);
</script>
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()

Chuỗi T À I L I U H C H T M L

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

- Cú pháp:

string.substr(start, length)
  • 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
Ví dụ
<script>
    var text = "TÀI LIỆU HỌC HTML";
    var a = text.substr(4, 3);
</script>
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()

Chuỗi T À I L I U H C H T M L

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:

string.replace(nội dung cũ, nội dung mới)

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

Ví dụ

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

<script>
    var text = "Tài liệu học HTML";
    var a = text.replace("học", "tham khảo");
</script>
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.

Ví dụ

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"

<script>
    var text = "Tài liệu học HTML và tài liệu học CSS";
    var a = text.replace("học", "tham khảo");
</script>
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:

<script>
    var text = "Tài liệu học HTML và tài liệu học CSS";
    var a = text.replace(/học/g, "tham khảo");
</script>
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

Ví dụ
<script>
    var text = "Tài liệu học HTML";
    var a = text.replace("HọC", "tham khảo");
</script>
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:

<script>
    var text = "Tài liệu học HTML";
    var a = text.replace(/HọC/i, "tham khảo");
</script>
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:

<script>
    var text = "Tài liệu học HTML và tài liệu học CSS";
    var a = text.replace(/HọC/gi, "tham khảo");
</script>
Xem ví dụ
0