String trong javascript.


1. Nối chuỗi (Concatenation).

Ví dụ Ta có biến myName và myAge như sau :

var myName = "Mr D"
var myAge = 34

Để in ra một thông điệp "Tôi tên là Mr D. Tôi 34 tuổi." ta làm như sau:

var message = "Tôi tên là " + myName + ". Tôi " + myAge + " tuổi.";
console.log(message); // Tôi tên là Mr D. Tôi 34 tuổi.

Note: Trong javascript ta dùng dấu '' hoặc "" đều như nhau.

2. Template String trong ES6.

Thay vì dùng cách trên ta có thể dùng template strings trong ES6 như sau:

var message = `Tôi tên là ${myName}. Tôi ${myAge} tuổi.`;
console.log(message); // Tôi tên là Mr D. Tôi 34 tuổi.

Note: Template strings dùng dấu ` chứ không phải là dấu ' nhé.

3. Escaping.

Nếu như ta muốn in ra một chuỗi Hello 'Javascript' thì ta làm như sau:

var message2 = "Hello 'Javascript'";
console.log(message2); // Hello 'Javascript'

Hoặc dùng Escaping như sau:

var message3 = 'Hello \'Javascript\'';
console.log(message3); //  Hello 'Javascript'

4. Length.

Vậy là ta đã biết cách in ra một thông điệp có kèm với các biến. Giờ ta muốn biết chiều dài của thông điệp là bao nhiêu ký tự ta dùng phương thức length.

// Mr D : length  =  4
console.log(myName.length); // 4 ký tự

5. Truy cập ký tự trong 1 chuỗi.

Ta muốn truy xuất ký tự đầu tiên trong chuỗi:

// Mr D
   0123 <-- index
console.log(myName[0]); // M

Index hay còn gọi là vị trí, bắt đầu bằng 0. ta dùng myName[0] để lấy ra giá trị đầu tiên của chuỗi.

Để lấy ra giá trị cuối cùng của chuỗi ta làm như sau:

console.log(myName[myName.length - 1]); // D

myName.length là 4 , 4 - 1 = 3, myName[3] là D.

Ngoài cách trên thì javascript cũng hỗ trợ hàm charAt() để lấy giá trị của chuỗi:

// lấy ra ký tự đầu tiên
console.log(myName.charAt(0)); // M

// lấy ra ký tự cuối cùng
console.log(myName.charAt(myName.length - 1)); // D

Javascript còn hổ trợ indexOf() để xác định ký tự ở vị trí index bao nhiêu. Ví dụ ta muốn xác định ký tự M trong chuỗi "Mr D" nằm ở index bao nhiêu ta làm như sau:

console.log(myName.indexOf('M')); // 0

Còn nếu ký tự kiểm tra không có trong chuỗi thì sẽ trả về -1.

console.log(myname.indexOf('T')); // -1

Còn nếu ta có chuỗi sau : "DD" có 2 ký tự "D" thì hàm indexOf sẽ làm việc như thế nào ?

// DD
// 01 <--- index
var myString = "DD";
console.log(myString.indexOf('D')); // 0

Muốn lấy vị trí index cuối cùng của ký tự "D" ta dùng phương thức lastIndexOf()

var myString = "DD";
console.log(myString.lastIndexOf('D')); // 1

6. Cắt chuỗi với substring(), slice(), split().

substring()

Nếu bây giờ ta muốn cắt ký tự "Mr" của chuỗi "Mr D" lưu vào 1 biến mới thì ta có thể dùng phương thức substring()

// 0: index bắt đầu, 2: index kết thúc là 1
var myString2 = myName.substring(0,2); 
console.log(myString2); // Mr
console.log(myName); // Mr D

Phương thức substring lấy ký tự bắt đầu tại index 0 và kết thúc tại vị trí 1 không phải kết thúc tại 2 nhé và chuỗi bang đầu "Mr D" không thay đổi.

slice()

Javascript cũng hỗ trợ 1 phương thức khác là slice() cũng tương tự substring():

var myString3 = myName.slice(0, 2); // tại vị trí 0 , lấy ra 2 ký tự
console.log(myString3); // Mr
console.log(myName); // Mr D

Trong trường hợp ta muốn lấy ra ký tự cuối của chuỗi:

// Mr D
console.log(myName.slice(-1)) ; // D
console.log(myName.substring(myName.length -1)); // D
 

Ta thấy phương thức substring() khó sử dụng hơn slide(). slice muốn lấy ở cuối cứ thêm dấu "-" lấy mấy ký tự thì thêm số vào.

Còn hàm substring(myName.length - 1) chỉ có vị trí bắt đầu mà không có vị trí kết thúc lấy ra, có nghĩa là lấy từ vị trí này tới cuối chuỗi luôn. Nhưng myName.length -1 là vị trí cuối cùng rồi nên lấy ký tự này ra.

split()

Bây giờ muốn cắt chuỗi văn bảng thành từng câu ta dùng phương thức split()

var message4 = "Hello javascript. Javascript is Awesome";
console.log(message4.split('.')); 
//["Hello javascript", "Javascript is Awesome"]

console.log(message4); 
// Hello javascript. Javascript is Awesome

Ta cắt nội dung của message4 thành 2 câu dựa trên dấu '.' . Phương thức split() trả về là 1 array. Ta muốn truy xuất và array cũng dùng index

console.log(message4[0]); // Hello javascript
console.log(message4[1]); // Javascript is Awesome

7. Thay thế chuỗi. replace()

Còn nếu muốn thay đổi ký tự trong chuỗi thì dùng phương thức replace()

var newString = message4.replace('Javascript','***'); 
console.log(newString);// Hello javascript. *** is Awesome
console.log(message4); // Hello javascript. Javascript is Awesome

8. Kiểm tra chuỗi có trong chuỗi không.

includes()

Để kiểm tra một số ký tự có nằm trong chuổi không ta dùng includes()

var myBoolean = message4.includes('Hello');
console.log(myBoolean); // true

Vậy là hôn nay ta đã tìm hiểu được:

  1. Nối chuỗi (Concatenation).
  2. Template String trong ES6.
  3. Escaping.
  4. Length.
  5. Truy cập ký tự trong 1 chuỗi.
  6. Cắt chuỗi với substring(), slice(), split().
  7. Thay thế chuỗi.
  8. Kiểm tra chuỗi có trong chuỗi không.

Wow. Hôm nay ta học rất nhiều về chuỗi rồi. ^_^