Javascript – Những hàm xử lý chuỗi thông dụng hàng ngày
28th Jul 2022String là một kiểu dữ liệu thông dụng trong nhiều ngôn ngữ lập trình, nó mạnh vì nó có thể dùng vào nhiều trường hợp để giải quyết các vấn đề từ dễ đến phức tạp. Hôm nay mình xin giới thiệu vài hàm xử lý chuổi trong javascript.
Đó là các hàm:
- IndexOf()
- LastIndexOf()
- CharAt()
- Substring()
- Spilt()
- Hàm IndexOf()
Hàm IndexOf() sẽ trả về vị trí của một tập các ký tự (gọi là chuỗi con) trong một chuỗi, nó cho ta biết nơi chuỗi con bắt đầu (ký tự đầu tiên trong chuỗi là vị trí 0, ký tự thứ 2 là 1 …).
Nếu chuỗi con không tồn tại trong chuỗi thì IndexOf sẽ trả về -1.
Ví dụ ta có đoạn mã như sau:
- var chuoi = "Hello World" ;
- chuoi.IndexOf('o') = 4
- chuoi.IndexOf('r') = 8
Lưu ý vị trí trong chuổi bắt đầu từ 0
Hàm LastIndexOf()
Ngược lại với hàm IndexOf thì hàm LastIndexOf() sẽ trả về vị trí xuất hiện sau cùng của chuỗi con. Ta có ví dụ như sau:
- var chuoi = "Hello World" ;
- chuoi.LastIndexOf('o') = 7
- chuoi.LastIndexOf('l') = 9
Mình có ví dụ cách sử dụng 2 hàm này trong bài Kiểm tra mail trong javascript
Hàm charAt()
Hàm CharAt sẽ tìm vị trí của một ký tự cho trước trong một chuỗi. Ví dụ để tìm vị trí đầu tiên của một chuổi chứa trong biến chuoi ta viết như sau:
var the_character = chuoi.charAt(1);
Ngoài ra
- var chuoi = "Hello World" ;
- chuoi.charAt(1) ="H"
- chuoi.charAt('2') = "e"
Ví dụ ta có chương trình kiểm tra không có ký tự không hợp lệ (!#$%^&*()/;:’)trong một chuỗi như sau:
function KiemtraKytuHopLe(chuoi , kytukhople) { var the_check = false; var the_char = ""; for(var i = 0; i< kytukhople.length; i++) { // lấy ra từng ký tự đặc biệt the_char = kytukhople.charAt(i); // nếu chuoi có chứa ký tự đặc biệt if(chuoi.indexOf(the_char) != -1 ) { the_check = true; } } return the_check; }
Hàm KiemtraKytuHopLe nhận vào hai tham số, một là chuổi cần kiểm tra và danh sách các chuỗi không hợp lệ. Ví dụ để sự dùng hàm này để kiểm tra thêm email trong bài Javascript – Kiểm tra tính hợp lệ của mail nhập vào có ký tự đặc biệt hay không ta viết như sau:
var the_kytukhople = "!#$%^;amp;*():;'/"; var the_email = "[email protected]"; var result = KiemtraKytuHopLe(the_email,the_kytukhople); if(result) { alert("Mail không hợp lệ"); } else alert("Ok");
Sau khi hàm KiemtraKytuHopLe thực hiện thì kết quả sẽ đưa vào biến result. Nếu là true thì email đó không hợp lệ ngược lại thì ok.
Hàm substring()
Hàm substring() cũng giống như hàm charAt() ngoại trứ nó có thể lấy ra toàn bộ chuỗi con từ một từ chứ không phải chỉ một ký tự. Cú pháp nó như sau: substring(from, until).
Ở đây from là vị trí ký tự đầu tiên của chuỗi con và until là vị trí cuối cùng của chuỗi con + 1. Nói cách khác substring() lấy ra ký tự từ tham số from đến hết( nhưng không tính) tham số thứ hai.
- var chuoi = "hello world";
- chuoi.substring(0,4);&amp;amp;amp;amp;amp;amp;nbsp; //"hell"
Ví dụ dưới đây là chương trình lấy ra username từ một địa chỉ mail bằng các hàm ở trên các bạn có thể dùng vào chương trình của mình
Ví dụ: [email protected] =>doanvanthuong
function getUserName(the_string) { var until = the_string.indexOf("@"); //nếu không có ký tự @ thì mail này không hợp lệ if (until == -1) { alert("mail không hợp lệ"); } else { //ngược lại thì lấy từ ký tự đầu tiên đến sau ký tự @ var user_name = the_string.substring(0, until); alert(user_name); } } getUserName("[email protected]");
Hoặc lấy ra tên miền từ một URL bất kỳ
function getDNS(the_url) { // chỉ ra vị trí xuất hiện của 2 ký tự // var two_slashes = the_url.indexOf("//"); //chuoi tiep theo từ vi trí // lấy cho đến hết độ dài chuỗi var string_next_to_slashes = the_url.substring(two_slashes +2, the_url.length); //lấy ra vị trí của dấu "/" tiếp theo var next_slash = string_next_to_slashes.indexOf("/"); // lấy ra domai name từ vị trí 0 của chuỗi con đến dấu "/" kế tiếp var domain = string_next_to_slashes.substring(0, next_slash); alert(domain); } getDNS("https://doanvanthuong.wordpress.com/lap-trinh"); //doanvanthuong.wordpress.com
Hàm Spilt()
Hàm Spilt() sẽ giúp cho ta việc lấy ra một tên miền từ một URL dễ dàng hơn bằng cách sử dụng một ký tự hay nhóm các ký tự lại với nhau để chia các chuỗi thành chuỗi con sau đó bỏ vào một mảng. Ví dụ
var myFriend ="Thuong,Thuy,Vuong,Danh,Vu,Binh,Huong"; var my_friendArr = myFriend.split(","); for(let i = 0; i < my_friendArr.length; i++) { alert(my_friendArr[i]); }
Hàm spilt(“,”) sẽ tách từng chuỗi ra dấu phẩy rồi bỏ vào trong mảng my_friendArr
Hàm spilt() sẽ đơn giản hóa việc lấy tên domain từ URL như sau: Ta Url thành từng chuỗi còn và bỏ vào một mản sau đó muốn lấy domain ta chỉ lấy mảng[vitri] là xong
- var the_arr = the_url.spilt(“/”);
- var dns = the_arr[2];
Rồi oke! trên đây là các hàm xử lý chuổi thông dụng trong javascript cùng với các ví dụ minh họa. Cảm ơn các bạn đã theo dõi
- 1 view
Add new comment