Trong bài viết này, mình muốn nói về vài Phương thức thao tác với chuỗi (String method) bạn cần phải biết trong Javascript.
Đây là những phương thức chuỗi rất thường gặp trong các JS Framework và rất hữu ích khi giải quyết vấn đề và các thuật toán.
15+ Javascript String Method ai cũng cần phải biết
Mình đã giải quyết các thuật toán trên cả FreeCodeCamp và CodeWars trong 4 tuần qua, và mình sử dụng rất nhiều lần này các phương thức này.
Và mình nghĩ, kể cả bạn là một Lập trình viên Javascript hay Lập trình viên PHP, JAVA... Chỉ cần đụng đến JS là bạn cần phải biết đến chúng.
1. Phương thức length trong Javascript
let str = "i am a string";
console.log(str.length); //13
2. Phương thức split trong Javascript
Phương thức .split() tạo ra một mảng từ một chuỗi. Bạn có thể sử dụng một chuỗi phân tách được chỉ định để xác định cách bạn phân tách chuỗi ra như thế nào.
const str = "Luke, I am your Father";
console.log(str.split());//[ 'Luke, I am your Father' ]
console.log(str.split(''));//["L", "u", "k", "e", ",", " ", "I", " ", "a", "m", " ", "y", "o", "u", "r", " ", "F", "a", "t", "h", "e", "r"]
console.log(str.split(' '));//[ 'Luke,', 'I', 'am', 'your', 'Father' ]
console.log(str.split(','));//[ 'Luke', ' I am your Father' ]
Lưu ý: Để an toàn hơn thì việc phân tách chuỗi thành các từ bằng .split(/\w/g) sẽ tốt hơn là sử dụng .split('')
Chúng ta hãy xem một cách mình dễ dàng giải quyết thuật toán trên CodeWars: Cho một chuỗi, viết hàm để trả về một mảng các số nguyên là độ dài của các từ trong chuỗi.
function wordsLength(str) {
return str.split(' ') //Đầu tiên, tách chuỗi thành mảng các từ
.map(word => word.length); //Sử dụng map() định dạng phần tử của mảng theo chiều dài với .length;
}
wordsLength('Luke, I am your father'); //[ 5, 1, 2, 4, 6 ]
3. Phương thức toUpperCase trong Javascript
Phương thức toUpperCase này chuyển toàn bộ chuỗi chữ thường thành chữ viết Hoa.
const str = 'I find your lack of faith disturbing.';
console.log(str.toUpperCase()); //I FIND YOUR LACK OF FAITH DISTURBING.
4. Phương thức toLowerCase trong Javascript
Phương thức toLowerCase ngược lại toUpperCase. Phương thức này chuyển toàn bộ chuỗi thành chữ thường.
const str = 'Help me, Obi-Wan Kenobi. You’re my only hope.';
console.log(str.toLowerCase()); //help me, obi-wan kenobi. you’re my only hope.
5. Phương thức includes trong Javascript
Để kiểm tra xem một chuỗi chứa các ký tự được chỉ định ta dùng Phương thức includes(). Nó sẽ trả về giá trị boolean (true hoặc false). Có thể thêm vị trí chỉ định trong chuỗi để bắt đầu tìm kiếm.
const str = 'The Force will be with you. Always.';
console.log(str.includes('Force')); //true
//Chú ý: includes Phân biệt hoa thường!
console.log(str.includes('force')); //false
//Thông thường sẽ tốt hơn khi chuyển đổi chuỗi thành chuỗi viết thường
//Sau đó mới bắt đầu kiểm tra chuỗi bằng phương thức includes.
const newStr = str.toLowerCase();
console.log(newStr.includes('force')); //true
//Thêm vị trí chỉ định bắt đầu tìm kiếm
console.log(str.includes('w', 0)); //true
console.log(str.includes('T', 1)); //false
6. Phương thức startsWith trong Javascript
Kiểm tra xem một chuỗi bắt đầu bằng các ký tự được chỉ định ta dùng .startsWith(). Nó sẽ trả về giá trị boolean và có thể thêm vị trí bắt đầu tìm kiếm.
Phương thức startsWith() là phân biệt Hoa thường.
const str = 'Never tell me the odds!';
console.log(str.startsWith('Never')); //true
console.log(str.startsWith('Never', 1)); //false
console.log(str.startsWith('never', 0)); //false
7. Phương thức endWith trong Javascript
Để kiểm tra xem một chuỗi kết thúc bằng các ký tự được chỉ định hay không ta dùng phương thức .endWith(). Nó sẽ trả về giá trị boolean và có thể thêm tham số độ dài (tùy chọn). Phương thức endWith() là phân biệt Hoa thường.
const str = 'Do. Or do not. There is no try.';
console.log(str.endsWith('try.')); //true
console.log(str.endsWith('Try.')); //false
console.log(str.endsWith('try', 30)); //true
console.log(str.endsWith('try.', 30)); //false
8. Phương thức indexOf trong Javascript
Để kiểm tra sự xuất hiện đầu tiên của một giá trị được chỉ định trong một chuỗi bằng phương thức .indexOf().
Phương thức này trả về vị trí đầu tiên của giá trị tìm thấy. Nếu giá trị không nằm trong chuỗi, nó sẽ trả về -1.
Ta có thể thêm một đối số thứ hai để chỉ đị vị trí bắt đầu tìm kiếm.
const str = 'When gone am I, the last of the Jedi will you be. The Force runs strong in your family. Pass on what you have learned.';
console.log(str.indexOf('h')); //1
console.log(str.indexOf('H')); //-1
console.log(str.indexOf('h', 2)); //17
console.log(str.indexOf('J', str.length)); //-1
9. Phương thức lastIndexOf trong Javascript
Để kiểm tra lần xuất hiện đầu tiên của một giá trị được chỉ định trong một chuỗi với phương thức .lastIndexOf() tính từ cuối chuỗi ngược trở lại.
Giá trị được kiểm tra từ cuối ngược trở lại. Nhưng giá trị trả về thì vẫn tính theo chỉ số index.
Nếu giá trị không nằm trong chuỗi, nó sẽ trả về -1. Tham số thứ 2 là vị trí bắt đầu tìm kiếm ngược trở lại. Nếu không có, mặc định là tìm kiếm từ cuối chuỗi.
const str = 'When gone am I, the last of the Jedi will you be. The Force runs strong in your family. Pass on what you have learned.';
console.log(str.lastIndexOf('h')); //105
console.log(str.lastIndexOf('h', 100)); //97
console.log(str.lastIndexOf('.')); //117
console.log(str.lastIndexOf('.', 0)); //-1
10. Phương thức repeat trong Javascript
Phương thức .repeat() là phương thức trả về chuỗi được lặp lại một số lần cụ thể theo tham số truyền vào.
const str = 'There’s always a bigger fish.';
console.log(str.repeat(2));//There’s always a bigger fish.There’s always a bigger fish.
//Chú ý: Số lẻ sẽ chuyển đổi thành số nguyên 5.5 -> 5
console.log(str.repeat(5.5));//There’s always a bigger fish.There’s always a bigger fish.There’s always a bigger fish.There’s always a bigger fish.There’s always a bigger fish.
11. Phương thức replace trong Javascript
Phương thức .replace() dùng để thay thế một mẫu (pattern) trong một chuỗi nhất định. Mẫu có thể là một chuỗi hoặc một biểu thức chính quy (regex) và thay thế có thể là một chuỗi hoặc một hàm được gọi trên mỗi kết quả khớp.
Chú ý: Nếu các thay thế hoặc mẫu là một chuỗi thì chỉ có lần xuất hiện đầu tiên được thay thế.
const string = 'Fear is the path to the dark side.';
console.log(string.replace('Fear', 'Tears')); //Tears is the path to the dark side.
console.log(string.replace(/a/gi, 'A'));//FeAr is the pAth to the dArk side.
12. Phương thức charAt trong Javascript
Chúng ta có thể lấy một ký tự cụ thể từ một chuỗi bằng phương thức charAt() (chính xác là một đơn vị mã UTF-16).
Nó trả về một chuỗi rỗng nếu chỉ số truyền vào nằm ngoài phạm vi!
const string = 'Fear leads to anger';
console.log(string.charAt(1));//e
console.log(string.charAt(string.length - 1));//r
console.log(string.charAt(string.length));//'' Chỉ số nằm ngoài phạm vi!
//Chú ý: Nếu không có chỉ số truyền vào thì mặc định sẽ là 0
console.log(string.charAt());//F
13. Phương thức charAtCode trong Javascript
Phương thức charAtCode lấy mã UTF-16 của chữ cái tại chỉ mục đã cho trong một chuỗi.
Phương thức này rất hữu ích với các thuật toán như ROT13 hoặc Caesar Cypher. Nếu không có chỉ số nào được cung cấp thì mặc định là 0.
const string = 'We must keep our faith in the Republic.';
console.log(string.charCodeAt(0));//87
console.log(string.charCodeAt(5));//115
//Nếu bạn muốn lấy tất cả giá trị UTF-8 của các ký tự trong chuỗi
//Tiến hành tách chuỗi để có một mảng ký tự
//Ánh xạ mảng và lấy giá trị UTF-8 bằng phương thức charCodeAt();
const utfValuesArr = string.split('').map(letter => letter.charCodeAt());
console.log(utfValuesArr);
//[87, 101, 32, 109, 117, 115, 116, 32, 107, 101, 101, 112, 32, 111, 117, 114, 32, 102, 97, 105, 116, 104, 32, 105, 110, 32, 116, 104, 101, 32, 82, 101, 112, 117, 98, 108, 105, 99, 46]
14. Phương thức String.fromCharCode() trong Javascript
Ngược lại với phương thức charAtCode ở trên, phương thức String.fromCharCode() sẽ nhận một chuỗi được tạo từ mã UTF-16.
console.log(String.fromCharCode(65));//A
console.log(String.fromCharCode(105, 106, 107));//ijk
console.log(String.fromCharCode(32));//'' empty space!
const arr = [77, 97, 121, 32, 116, 104, 101, 32, 70, 111, 114, 99, 101, 32, 66, 101, 32, 87, 105, 116, 104, 32, 89, 111, 117];
const quote = arr.map(n => String.fromCharCode(n));
console.log(quote.join('')); //May the Force Be With You
15. Phương thức slice trong Javascript
Phương thức slice() trong Javascript cắt lấy một phần của chuỗi, và trả về trong một chuỗi mới, mà không sửa đổi chuỗi gốc.
Phương thức slice() cần có 2 tham số.
-
Begin Index là nơi bắt đầu cắt chuỗi
-
End Index tùy chọn nơi dừng lại để cắt chuỗi.
Nếu không có End Index truyền vào, mặc định nó sẽ cắt chuỗi đến cuối chuỗi.
Chú ý: Chỉ số âm sẽ đếm ngược từ cuối chuỗi.
const string = 'I’m just a simple man trying to make my way in the universe.';
console.log(string.slice(1));//’m just a simple man trying to make my way in the universe.
console.log(string.slice(0,10));//I’m just a
console.log(string.slice(-3));//se.
> Xem thêm ngay: NỐI CHUỖI TRONG JAVASCRIPT
16. Phương thức substring trong Javascript
Để lấy một phần của chuỗi giữa các chỉ số bắt đầu và kết thúc, hoặc đến cuối chuỗi chúng ta sử dụng phương thức substring().
Chú ý: Bất kỳ giá trị đối số nào nhỏ hơn 0 hoặc lớn hơn stringName.length đều được xử lý như thể nó là 0 và stringName.length tương ứng. Bất kỳ giá trị đối số nào là NaN đều được xử lý như thể nó là 0.
const string = 'Darth Vader';
console.log(string.substring(0));//Darth Vader
console.log(string.substring(6));//Vader
console.log(string.substring(1,6));//arth
17. Phương thức trim trong Javascript
Phương thức trim() loại bỏ khoảng trắng ở hai đâu của chuỗi.
const string = ' Yoda ';
console.log(string.trim());//Yoda
Đây chưa phải là một danh sách đầy đủ tất cả các Phương thức chuỗi trong Javascript, nhưng đây là một danh sách các phương thức mình thấy rất là quan trọng nhất khi Lập trình Web.
Để hiểu rõ hơn về Javascript và cách giải quyết vấn đề liên quan đến string, mình khuyên bạn nên thử nghĩ ra nhiều bài toán để giải quyết hoặc 'Chơi' thật nhiều với tất cả các phương thức này trên Codewars.
Mauro Bono
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0968051561
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp