3.1. Xử lý chuỗi (string) trong Javascript - Phần 3 - Data types

 


1. Chuỗi string trong Javascript là gì?

Chuỗi là một đoạn text có thể có một hoặc nhiều ký tự và thông thường chúng ta sẽ lưu trữ nó vào một biến, biến này ta sẽ gọi là biến có kiểu dữ liệu là String (chuỗi). Tất cả các chuỗi đều phải được bao quanh bằng cặp dấu nháy đơn ' hoặc nháy kép ".

Ví dụ: Khai báo biến và gán chuỗi string JS

1
2
var website = "website freetuts.net học javascript quá sướng";
var email = 'thehalfheart@gmail.com';<br>

Trường hợp trong chuỗi cũng có xuất hiện dấu nháy đơn hoặc nháy đôi thì bắt buộc bạn phải thêm ký tự \ đằng trước dấu nháy đó, nếu không sẽ bị lỗi về cũ pháp.

Ví dụ: Trong chuỗi string có dấu nháy

1
2
var message = "Học lập trình tại \"freetuts.net\" quá sướng";
var domain = 'freetuts.net - 'web học lập trình'';

Ngoài ra còn nhiều ký hiệu kết hợp với dấu \ nữa như trong bảng dưới đây:

CodeKết quả
'single quote
\"double quote
\\backslash
\nnew line
\rcarriage return
\ttab
\bbackspace
\fform feed

2. Cách nối chuỗi string trong Javascript

Để nối chuỗi string trong JS thì chúng ta sử dụng dấu + để gép hai chuỗi hoặc biến kiểu String Object lại với nhau.

Ví dụ: Ghép hai string lại rồi gán vào biến message.

1
var message = "chào mừng bạn" + "đến với freetuts.net";

Hoặc:

1
2
3
4
5
var message1 = "chào mừng bạn";
var message2 = "đến với freetuts.net";
 
// Nối hai chuỗi
var message = message1 + message2;

3. Xử lý string trên nhiều dòng trong Javascript

Khi bạn muốn Enter xuống hàng một chuỗi trong Javascript thì bắt buộc phải sử dụng dấu + để nối chuỗi, nếu không sẽ bị lỗi cú pháp.

Ví dụ: Dùng dấu + để nối chuỗi

1
2
3
4
5
6
7
// Đúng
var message = "Chào mừng bạn đến với"
              + "freetuts.net";
 
// Sai
var message = "Chào mừng bạn đến với
               freetuts.net";

Nếu bạn muốn viết gọn hơn thì sử dụng dấu \ để báo cho trình duyệt biết là có xuống hàng.

Ví dụ: Dùng ký tự \ để khai báo chuỗi trên nhiều dòng.

1
2
var message = "Chào mừng bạn đến với \
            freetuts.net";

Hoặc bạn cũng có thể sử dụng dấu `nội dung chuỗi` để khai báo.

Ví dụ: Dùng cặp dấu ``.

1
2
var message = `Chào mừng bạn đến với
            freetuts.net`;

4. Ép chuỗi string trong javascript

Nếu bạn muốn ép một giá trị nào đó sang kiểu chuỗi thì có thể sử dụng cú pháp string.toString().

1
2
3
4
5
6
7
// Trước khi chuyển đổi
var number = 12;
alert(typeof number);
 
// Sau khi chuyển đổi
number = number.toString();
alert(typeof number);



Từ khóa typeof vars sẽ trả về kiểu dữ liệu của biến vars.

Ngoài cách trên bạn có thể sử dụng đối tượng String để tạo hoặc ép chuỗi, và vì là đối tượng nên nó phải có từ khóa new đặt đằng trước.

Ví dụ: Sử dụng String object hoặc String function.

1
2
3
4
5
// String object           
var message = new String("chào mừng bạn đến với freetuts.net");
 
// String function
var message = String("chào mừng bạn đến với freetuts.net");

Lúc này dù bạn truyền vào là kiểu gì đi nữa thì kết quả nó vẫn trả về kiểu string. Tuy nhiên người ta khuyến khích bạn không nên sử dụng cách này bởi vì chương trình sẽ chạy chậm hơn.

5. Một số hàm xử lý string trong Javascript

Sau đây mình xin tổng hợp một số hàm / phương thức / thuộc tính dùng để xử lý chuỗi string trong JS.

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

Để đếm tổng số ký tự trong chuỗi string thì ta sử dụng thuộc tính length.

1
2
var txt = "freetuts.net";
var sln = txt.length; // Kết quả 12

Tìm kiếm chuỗi trong chuỗi

Nếu muốn tìm kiếm một chuỗi bên trong một chuỗi khác thì dùng hàm indexOf.

  • Nếu tìm thấy thì nó sẽ trả về vị trí xuất hiện đầu tiên của chuỗi con.
  • Nếu không tìm thấy thì tra về -1.
1
2
var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate"); // Kết quả 7

Nếu muốn tìm vị trí xuất hiện cuối cùng của chuỗi con thì dùng hàm lastIndexOf.

1
2
var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate"); // Kết quả 21 - là vị trí locate cuối cùng

Ngoài ra bạn cũng có thể sử dụng hàm search, nó có công dụng giống như hàm indexOf.

1
2
var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");















Nhận xét