Các hàm xử lý chuỗi trong Javascript - Javascript căn bản
Bài trước chúng ta đã tìm hiểu về chuỗi trong javascript nhưng đó chỉ là những thao tác đơn giản như khởi tạo, gán giá trị và thực hiện toán tử nối chuỗi, vậy trong bài này mình sẽ giới thiệu những hàm xử lý chuỗi trong Javascript thường sử dụng nhất để các bạn sử dụng trong quá trình làm ...
Bài trước chúng ta đã tìm hiểu về chuỗi trong javascript nhưng đó chỉ là những thao tác đơn giản như khởi tạo, gán giá trị và thực hiện toán tử nối chuỗi, vậy trong bài này mình sẽ giới thiệu những hàm xử lý chuỗi trong Javascript thường sử dụng nhất để các bạn sử dụng trong quá trình làm việc. Nói là hàm nhưng thực chất đó là những phương thức vì tất cả những hàm đó đều phải sử dụng thông qua đối tượng String
và chi tiết thế nào thì chúng ta cùng tìm hiểu nhé.
1. Các hàm xử lý chuỗi trong Javascript
Mình không thể liệt kê hết các hàm được mà chỉ đưa ra những hàm hay sử dụng nhất để bài viết được ngắn gọn hơn.
Tìm kiếm chuỗi con
Chúng ta có ba hàm thường dùng để tìm kiếm chuỗi con trong Javascript như sau:
- indexOf()
- lastIndexOf()
- search()
Hàm indexOf()
Để tìm kiếm chuỗi con thì ta sử dụng hàm String.indexOf(str)
, trong đó str
là chuỗi con và String
là chuỗi cha. Hàm này sẽ trả kết quả về kết quả là vị trí xuât hiện đầu tiên của chuỗi (bắt đầu là vị trí 0
), nếu không tìm thấy chuỗi con thì nó sẽ trả về -1
.
Ví dụ: XEM DEMO
var string = "Chào mừng bạn đến với Zaidap.com.net"; document.write("Vị trí xuất hiện chuỗi Zaidap.com.net là: " + string.indexOf("Zaidap.com.net"));<br>
Hàm lastIndexOf()
Trường hợp nếu chuỗi con xuất hiện nhiều lần trong chuỗi cha thì kết quả cũng trả về vị trí xuất hiện của chuỗi con đầu tiên. Vậy làm thế nào để lấy vị trí của chuỗi con cuối cùng trong chuỗi cha? Ta sẽ sử dụng hàm String.lastIndexOf(str)
, hàm này sẽ trả về vị trí xuất hiện của chuỗi con cuối cùng và trả về -1
nếu không tìm thấy.
Ví dụ: XEM DEMO
var string = "Website Zaidap.com.net - học lập trình miễn phí tại Zaidap.com.net"; document.write("Vị trí xuất hiện chuỗi Zaidap.com.net là: " + string.lastIndexOf("Zaidap.com.net"));
Hàm search()
Ngoài hai hàm trên bạn có thể sử dụng hàm string.search(str)
để tìm kiếm, tác dụng của nó cũng giống như hàm string.indexOf(str)
.
Ví dụ: XEM DEMO
var string = "Chào mừng bạn đến với Zaidap.com.net"; document.write("Vị trí xuất hiện chuỗi Zaidap.com.net là: " + string.search("Zaidap.com.net"));<br>
Cắt chuỗi con
Nếu ban muốn cắt một chuỗi con từ chuỗi cha thì bạn có thể sử dụng ba hàm sau:
- slice(start, end)
- substring(start, end)
- substr(start, length)
Note: tất cả các vị trí của chuỗi đều bắt đầu từ 0, vì vậy khi tính toán vị trí coi chừng bị nhầm lẫn nhé.
Hàm slice()
Hàm slide có hai tham số truyền vào:
start
: vị trí bắt đầuend
: vị trí kết thúc
Ví dụ: XEM DEMO
var string = "Welcome to Zaidap.com.net"; document.write("Chuỗi cần lấy là: " + string.slice(11, 23));<br>
Nếu tham số truyền vào là số âm thì nó sẽ tính ngược lại, nghĩa là nó sẽ đếm từ cuối lên.
Ví dụ: XEM DEMO
var string = "Welcome to Zaidap.com.net"; document.write("Chuỗi cần lấy là: " + string.slice(-12, 23));
Nếu bạn chỉ truyền một tham số đầu tiên thì nó sẽ tự hiểu vị trí end
là vị trí cuối cùng.
Ví dụ: XEM DEMO
var string = "Welcome to Zaidap.com.net"; document.write("Chuỗi cần lấy là: " + string.slice(5));
Hàm substring()
Hàm substring()
có cách sử dụng giống với hàm slice()
, tuy nhiên tham số truyền vào hàm substring()
phải luôn luôn lớn hơn 0
.
Ví dụ: XEM DEMO
var string = "Welcome to Zaidap.com.net"; document.write("Chuỗi cần lấy là: " + string.substring(11, 23));
Hàm substr()
Hàm substr()
có hai tham số là start
và length
, trong đó start
là vị trí bắt đầu và length
là số ký tự muốn lấy bắt đầu từ vị trí start
. Nếu bạn truyền tham số start
là số âm thì nó sẽ tính từ cuối trở lên, còn tham số length
phải luôn luôn là số dương.
Ví dụ: XEM DEMO
var string = "Welcome to Zaidap.com.net"; document.write("Chuỗi cần lấy là: " + string.substr(11, 12));
Tìm kiếm và lặp chuỗi
Để tìm kiếm và lặp một chuỗi con nào đó thì bạn sử dụng hàm replace(str_find, str_replace)
, trong đó str_find
là chuỗi cần tìm và str_replace
là chuỗi sẽ được thay thế chuỗi str_find
.
Ví dụ: XEM DEMO
var string = "Welcome to Zaidap.com.net"; document.write(string.replace("Zaidap.com.net", "Zaidap.com.net"));
Chuyển thành chữ hoa và chữ thường
Để chuyển chuỗi thành chữ hoa ta dùng hàm toUpperCase()
và chuyển thành chữ thường ta dùng hàm toLowerCase()
.
Ví dụ: XEM DEMO
var string = "Welcome to Zaidap.com.net"; document.write(string.toUpperCase() + "<br/>"); document.write(string.toLowerCase());
Nối thêm chuỗi
Để nối thêm chuỗi thông thường ta dùng toán tử +
, ngoài ra bạn có thể dùng hàm concat()
để thực hiện nối chuỗi.
Ví dụ: XEM DEMO
var string = "Welcome " + "to" + " Zaidap.com.net"; document.write(string + "<br/>"); // hoặc var string = "Welcome "; string = string.concat("to ", "Zaidap.com.net"); document.write(string + "<br/>");
Tìm ký tự hoặc mã ASCII của một ký tự
Để xem ký tự của một vị trí nào đó thì dùng hàm charAt()
, còn xem mã ASCII thì dùng hàm charCodeAt()
. Cả hai hàm này đều có tham số truyền vào là vị trí muốn xem.
Ví dụ: XEM DEMO
var string = "Welcome Zaidap.com.net"; document.write(string.charAt(1) + "<br/>"); document.write(string.charCodeAt(1) + "<br/>");
Chuyển đổi chuỗi sang mảng
Để chuyển một chuỗi sang mảng thì ta sử dụng hàm split()
với tham số truyền vào là ký tự ngăn cách giữa các phần tử.
Ví dụ: XEM DEMO
string = "Welcome Zaidap.com.net"; // Tạo thành mảng với mỗi phần tử ngăn bởi khoảng trắng // kết quả là mảng có hai phần tử gồm: welcome và feetuts.net document.write(string.split(" ").length);
2. Lời kết
Trên là các hàm xử lý chuỗi thông dụng mà bạn nên biết để sử dụng khi cần thiết, các hàm này đang ở mức căn bản vì vẫn chưa đáp ứng được các yêu cầu xử lý phức tạp hơn, vấn đề này mình sẽ đề cập sau khi chúng ta tìm hiểu về Regex trong Javascript.
Nếu bạn cần thêm bài tập để thực hành thì có thể theo dõi ở serie bài tập Javascript, nơi này là tổng hợp các bài tập Javascript từ căn bản đến nâng cao.