Tiếp nối sau bài viết Làm việc với Number trong Javascript thật dễ dàng, thì nay mình sẽ nói về string hay chuỗi trong JS. Methods xử lý string cũng rất đa dạng. Nhưng trong bài này, mình sẽ nói về các methods mà mình hay sử dụng nhất.
Các bạn có thể xem video cho chi tiết và trực quan nhất nhé.
Còn không thì… let’s goooooo
Cách khai báo
Có rất nhiều cách khai báo như
const singleQuoted = 'Hello world' // Nháy đơn const doubleQuoted = "Hello world" // Nháy kép const backticks = `Hello world` // Nháy huyền ngược (backticks)
Đặc biệt hơn hết, cách khai báo kiểu backticks rất hữu dụng, bạn làm rất nhiều thứ chẳng hạn
let name = 'khucblog.com' let str = `Hello ${name} ${1 + 1}` // 'Hello khucblog.com 2'
Các methods xử lý String hay dùng nhất
Hàm .trim
hàm này dùng để cắt khoảng trống đầu và cuối của một chuỗi.
let str = ' Jonah Go Dev ' str.length // 17 str.trim().length // 12
Hàm .toLowerCase và .toUpperCase
Tiếp theo là bộ đôi toLowerCase
và toUpperCase
.
toLowerCase
: Biến chữ thành kiểu viết thường.toUpperCase
: Biến chữ thành kiểu viết hoa.
let str = 'Jonah Go Dev' str.toLowerCase() // 'jonah go dev' str.toUpperCase() // 'JONAH GO DEV'
Hàm .slice
Trong JS thì có khá nhiều hàm cắt chuỗi, nhưng slice vẫn quá đủ để cho bạn xử lý.
let str = 'Jonah Go Dev' str.slice(0, 5) // 'Jonah' -> cắt từ vị trí 0 đến vị trí 5 str.slice(6) // 'Go Dev' -> Cắt từ vị trí 6 đến cuối dãy chuỗi str.slice(-3) // 'Dev' -> Có thể truyền giá trị âm để cắt
Hàm .indexOf
Hàm này để tìm kiếm vị trí trong chuỗi.
let str = 'Jonah Go Dev' str.indexOf('Go') // 6 => tìm thấy 'Go' từ vị trí thứ 6
Hàm .indexOf
sẽ đi từ trái qua phải để kiểm tra. Còn hàm .lastIndexOf
nữa, hàm này sẽ ngược lại, đi từ phải qua trái.
Hàm .replace
Hàm này dùng để thay thế chuỗi. Các bạn có thể xem video trên (phút 7:37) để nhìn được ví dụ trực quan hơn. Dưới đây mình lấy một ví dụ đơn giản nhất.
let str = 'Jonah Go Dev' str.replace('Jonah', 'John') // 'John Go Dev'
Hàm .split
Hàm này dùng để băm chuỗi thành mảng dựa vào tham số truyền vào.
let str = 'Jonah Go Dev' // Băm chuỗi thành mảng dựa vào khoảng trắng. str.split(' ') // ['Jonah', 'Go', 'Dev'] // Băm chuỗi dựa vào chữ 'Go' str.split('Go') // ['Jonah ', ' Dev']
Hàm .normalize
Một trong những hàm tuyệt, giúp chuyển đổi về một định dạng Unicode để so sánh. Hãy xem ví dụ dưới:
const name1 = '\u0041\u006d\u00e9\u006c\u0069\u0065' const name2 = '\u0041\u006d\u0065\u0301\u006c\u0069\u0065' // Có thể nhìn thấy, name1 và name2 khá giống nhau bằng mắt nhìn console.log(`${name1}, ${name2}`) // "Amélie, Amélie" // Nhưng khi so sánh thì chúng lại không bằng nhau vì khác kiểu Unicode. console.log(name1 === name2) // false console.log(name1.length === name2.length) // false // Mình sẽ chuyển 2 dãy chuỗi này thành đúng 1 kiểu unicode là 'NFC' const name1NFC = name1.normalize('NFC') const name2NFC = name2.normalize('NFC') // Giờ chúng ta có thể so sánh một cách chính xác nhất. console.log(`${name1NFC}, ${name2NFC}`) // "Amélie, Amélie" console.log(name1NFC === name2NFC) // false console.log(name1NFC.length === name2NFC.length) // false
Và đây là tóm tắt qua cách mà mình xử lý chuỗi trong Javascript. Để có thể trực quan nhất, thì mình khuyên các bạn xem qua video mà mình đã làm trên kia. Còn không thì mình cảm ơn các bạn đã đọc ^^