![[Javascript Căn bản] Xử lý chuỗi trong JavaScript](https://tuandc.com/wp-content/uploads/2017/07/laptrinh-javascript.jpg)
[Javascript Căn bản] Xử lý chuỗi trong JavaScript

Trong Javascript, bất kể một ký tự nào nằm trong dấu nháy kép “…” hoặc dấu nháy đơn ‘…’ thì đều được xem là chuỗi. Chuỗi được sử dụng để xử lý và thao tác với các đoạn văn bản. Trong bài viết này mình sẽ chia sẻ về chuỗi và những xử lý cơ bản chuỗi trong Javascript.
Chuỗi trong Javascript
Trong những bài trước bạn đã sử dụng các chuỗi, những đoạn văn bản được đặt trong dấu nháy kép “…” hoặc dấu nháy đơn ‘…’ được xem là một chuỗi. Ví dụ: var name ="Tuấn ĐC";
Chuỗi cho phép sử dụng hai loại dấu nháy là để có thể nhận dạng được các dấu này trong ký văn bản. Giả sử mình có một đoạn văn bản sau:phương pháp SEO "mũ đen" là không khuyến khích
. Nếu mình đưa nó vào biến như sau: var text = "phương pháp SEO "mũ đen" là không khuyến khích";
thì điều gì sẽ xảy ra. đoạn khái báo này sẽ bị lỗi, vì lúc này từ "mũ đen"
không được nhận trong chuỗi. Sử dụng dấu nháy đơn thay thế sẽ giúp bạn kiểm soát được điều này. Ví dụ: var text = 'phương pháp SEO "mũ đen" là không khuyến khích';
Tuy nhiên điều việc sử dụng 2 dấu nháy thay thế sẽ trở nên phức tạp nếu văn bản của bạn nhiều và chứa cả hai dấu nháy trên. Ví dụ: var text ="SEO "mũ đen" là phương pháp không khuyến khích, 'nó' sẽ làm lãng phí..."
Trong văn bản này mình sử dụng cả dấu nháy kép và nháy đơn. Dấu bao bên ngoài là nháy kép nên chỉ có thể hiển thị chuỗi nháy đơn, làm sao để có thể hiển thị chuỗi có dấu nháy đơn trong dấu nháy đơn, giải pháp là sử dụng escape character (\).
Ví dụ câu trên sẽ được xử lý như sau: var text ="SEO \"mũ đen\" là phương pháp không khuyến khích, 'nó' sẽ làm lãng phí..."
và ngược lại, nếu là dấu nháy đơn cũng thế thôi. Phương pháp này được dùng phổ biến hơn để xử lý với một đoạn văn bản dài mà không cần phải đổi dấu nháy phức tạp.
Trong nhiều trường hợp, đoạn text của bạn quá dài bạn có thể xuống dòng trong Javascript, hoặc dùng dấu “+
” để nối với chuỗi xuống dòng, ví dụ:
var text ="SEO \"mũ đen\" là phương pháp không khuyến khích,"+
" 'nó' sẽ làm lãng phí..."
Một số thuộc tính của chuỗi trong Javascript
Khi sử lý chuỗi, bạn cần dựa vào nhiều thuộc tính của chuỗi để xác định trạng thái và thông số của chuỗi, Các thuộc tính được nằm phía sau biến chuỗi. Ví dụ cú pháp:
var txt = "MNBVCXZLKJHGFDSA";
var sln = txt.thuộc_tính;
Một số thuộc tính của chuỗi trong Javascript.
length
: Trả về số ký tự trong chuỗi.indexOf("text",number)
: Trả về số vị trí của chữ bắt đầu của text trong chuỗi.Number
là số ký từ bắt đầu đếmlastIndexOf ("text",number)
: Trả về số vị trí của chữ cái kết thúc củatext
trong chuỗi.
Lưu ý là indexOf
luôn bắt đầu bằng vị trí số 0.
str.search("text")
Trả về số vị trí của chữ bắt đầu của text đầu tiên được tìm thấy trong chuỗi. Tương tựindexOf()
. Tuy nhiên search không thể đặt được chỉ số bắt đầu (number) nhưindexOf()
.slice(number1,number2)
: nó sẽ cắt và lấy chuỗi bắt đầu từ ký tựnumber1
đếnnumber2
. Các số này chấp nhận số âm như một phần của việc đảo ngược. ví dụ:
var str = "Táo, chuối, Kiwi";
var res = str.slice(5, 10);
Hoặc
var str = "Táo, chuối, Kiwi";
var res = str.slice(-12, -6);
substring(number1,number2)
: tương tự nhưslice
, nhưng nó không chấp nhận các số âmsubstr(number1,number2)
: tương tự nhưslice
, và có chấp nhận số âm, tuy nhiên tham số thứ hai (number2
) trong thuộc tính này không phải là vị trí cuối cùng của chuỗi muốn lấy mà là số ký tự muốn lấy bắt đầu từ ký tự có tham sốnumber1
. Ví dụ.
var str = "Táo, chuối, Kiwi";
var res = str.substr(5, 5);
replace("chuỗi cũ", "chuỗi mới")
: Sử dụngreplace
để thay thế một chuỗi cũ thành chuỗi mới, ví dụ:
var str = "Tôi thích Microsoft!";
var txt = str.replace("Microsoft","Apple");
Tuy nhiên câu lệnh trên chỉ thay thế được giá trị đầu tiên khi được tìm thấy. Để thay thế toàn bộ bạn cần sử dụng /.../g
làm như sau:
var str = "Tôi thích Apple!, nhưng Apple là quá mắc";
var txt = str.replace(/Apple/g,"Microsoft");
Thông thường thuộc tính replace
này phân biệt chữ hoa, thường, nên câu cần tìm để thay thế phải chính xác. Để bỏ quy tắc đó bạn cần sử dụng /.../i
làm như sau:
var str = "Tôi thích Apple!, nhưng Apple là quá mắc";
var txt = str.replace(/apple/i,"Microsoft");
Để thay đổi toàn bộ bạn cần thêm g
sau i
, từ /apple/i
thành /apple/ig
toUpperCase()
vàtoLowerCase()
:Upper
là trả về chuỗi in hoa vàLower
trả về chuỗi in thường.charAt(number)
: trả về chữ tại vị trínumber
.charCodeAt(number)
: trả về unicode của chữ tại vị trínumber
.split()
: Chuyển một chuỗi thành một mảng dựa vào các ký tự phân tách đặt biêt. Ví dụ
var txt = "a,b,c,d,e";
txt.split(",");
Đoạn trên sử dụng dấu phẩy để làm ký tự phân tách đặt biệt. Tuy nhiên khi làm thực tế bạn nên sử dụng các ký tự ít khi được dùng trong chuỗi như “|” để làm dấu phân tách.
Trong bài sau mình sẽ giới thiệu đến bạn Xử lý số trong JavaScript
