Các phương thức xử lý chuỗi trong JavaScript - Fedu

CHÀO MỪNG BẠN ĐẾN VỚI THƯ VIỆN HỌC TẬP & ĐÀO TẠO CƠ BẢN

Các phương thức xử lý chuỗi trong JavaScript

JavaScript

Hướng dẫn JavaScript

Biểu mẫu JavaScript

Đối tượng JavaScript

Hàm JavaScript

DOM JavaScript

Trình duyệt BOM

JavaScript Ajax

JavaScript Json

Các phương thức xử lý chuỗi giúp bạn làm việc với chuỗi.

Các phương thức và thuộc tính chuỗi

Giá trị nguyên hàm, như “John Doe”, không thể có thuộc tính hoặc phương thức (vì chúng không phải là đối tượng). Nhưng với JavaScript, các phương thức và thuộc tính cũng có sẵn cho các giá trị nguyên hàm, bởi vì JavaScript xử lý giá trị nguyên hàm như các đối tượng khi thực hiện phương thức, thuộc tính.

Chiều dài chuỗi

Thuộc tính length trả về chiều dài của một chuỗi:

var txt = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
var sln = txt.length;

Tìm chuỗi trong một chuỗi

Phương thức indexOf () trả về chỉ mục (vị trí) đầu tiên xuất hiện của văn bản được chỉ định trong một chuỗi:

var str = “Please locate where ‘locate’ occurs!”;
var pos = str.indexOf(“locate”);

Phương thức lastIndexOf () trả về chỉ mục cuối cùng xuất hiện của văn bản được chỉ định trong một chuỗi:

var str = “Please locate where ‘locate’ occurs!”;
var pos = str.lastIndexOf(“locate”);

Cả hai phương thức indexOf() và lastIndexOf() trả về -1 nếu văn bản không được tìm thấy.

JavaScript đếm vị trí từ số không. 0 là vị trí đầu tiên trong một chuỗi, 1 là thứ hai, 2 là thứ ba …

Cả hai phương pháp chấp nhận một tham số thứ hai là vị trí bắt đầu cho việc tìm kiếm:

var str = “Please locate where ‘locate’ occurs!”;
var pos = str.indexOf(“locate”,15);

Sự tìm chuỗi trong một chuỗi

Phương thức search() tìm kiếm một chuỗi cho một giá trị được chỉ định và trả về vị trí của thuật toán:

var str = “Please locate where ‘locate’ occurs!”;
var pos = str.search(“locate”);

Hai phương thức indexOf() và search() có tương đồng?

Chúng chấp nhận các đối số tương tự (tham số), và trả về cùng một giá trị?

Hai phương thức là khá tương đương nhau. Đây là những điểm khác biệt:

  • Phương thức search() không thể bắt đầu đối số vị trí thứ hai
  • Phương thức search() có thể lấy nhiều giá trị tìm kiếm mạnh mẽ hơn (các biểu thức thông thường)

Trích xuất một phần trong chuỗi

Có 3 phương thức trích xuất một phần của một chuỗi:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

Phương thức slice()

slice() trích ra một phần của một chuỗi và trả về phần đã giải nén trong một chuỗi mới. Phương thức này lấy 2 tham số: chỉ số khởi đầu (vị trí) và chỉ số kết thúc (vị trí).

Ví dụ này cắt ra một phần của chuỗi từ vị trí 7 đến vị trí 13:

var str = “Apple, Banana, Kiwi”;
var res = str.slice(7, 13);

Kết quả sẽ là:

Banana

Nếu một tham số là âm, vị trí được đếm từ cuối chuỗi. Ví dụ này cắt ra một phần của một chuỗi từ vị trí -12 đến vị trí -6:

var str = “Apple, Banana, Kiwi”;
var res = str.slice(-12, -6);

Kết quả sẽ là:

Banana

Nếu bạn bỏ qua tham số thứ hai, phương pháp sẽ cắt ra phần còn lại của chuỗi:

var res = str.slice(7);

hoặc đếm từ điểm kết thúc:

var res = str.slice(-12);

Vị trí phủ định không hoạt động trong Internet Explorer 8 và các phiên bản trước đó.

Phương thức substring()

substring() tương tự như slice(). Sự khác biệt là substring() không thể chấp nhận đại lượng âm.

var str = “Apple, Banana, Kiwi”;
var res = str.substring(7, 13);

Kết quả hiển thị:

Banana

Nếu bạn bỏ qua tham số thứ hai, chuỗi con () sẽ cắt ra phần còn lại của chuỗi.

Phương thức substr()

substr() tương tự như slice(). Sự khác biệt là tham số thứ hai xác định độ dài của phần trích ra.

var str = “Apple, Banana, Kiwi”;
var res = str.substr(7, 6);

Kết quả hiển thị:

Banana

Nếu tham số đầu tiên là đại lượng âm, vị trí đếm từ cuối chuỗi. Tham số thứ hai không thể âm, bởi vì nó xác định chiều dài. Nếu bạn bỏ qua tham số thứ hai, substr() sẽ cắt ra phần còn lại của chuỗi.

Thay thế nội dung chuỗi

Phương thức replace() thay thế một giá trị được chỉ định bằng một giá trị khác trong một chuỗi:

str = “Please visit Microsoft!”;
var n = str.replace(“Microsoft”, “W3Schools”);

Phương thức replace() không thay đổi chuỗi mà nó được gọi. Nó trả về một chuỗi mới.

Theo mặc định, hàm replace() chỉ thay thế cho đối tượng đầu tiên:

str = “Please visit Microsoft and Microsoft!”;
var n = str.replace(“Microsoft”, “W3Schools”);

Để thay thế tất cả các đối sánh, hãy sử dụng một biểu thức chính quy với cờ a/g :

str = “Please visit Microsoft and Microsoft!”;
var n = str.replace(/Microsoft/g, “W3Schools”);

Theo mặc định, hàm replace() phân biệt chữ hoa chữ thường. Viết MICROSOFT (với chữ hoa) sẽ không hoạt động:

str = “Please visit Microsoft!”;
var n = str.replace(“MICROSOFT”, “W3Schools”);

Để thay thế trường hợp không nhạy cảm, hãy sử dụng biểu thức chính quy có cờ /i (không nhạy cảm):

str = “Please visit Microsoft!”;
var n = str.replace(/MICROSOFT/i, “W3Schools”);

Chuyển từ viết hoa sang viết thường

Một chuỗi được chuyển thành viết hoa với toUpperCase():

var text1 = “Hello World!”;       // String
var text2 = text1.toUpperCase();  // text2 is text1 converted to upper

Một chuỗi được chuyển thành viết thường với toLowerCase():

var text1 = “Hello World!”;       // String
var text2 = text1.toLowerCase();  // text2 is text1 converted to lower

Phương thức concat()

concat() kết hợp hai hoặc nhiều chuỗi:

var text1 = “Hello”;
var text2 = “World”;
var text3 = text1.concat(” “, text2);

Phương thức concat () có thể được sử dụng thay vì toán tử cộng. Hai dòng này cũng làm như vậy:

var text = “Hello” + ” ” + “World!”;
var text = “Hello”.concat(” “, “World!”);

Tất cả các phương pháp chuỗi trả về một chuỗi mới. Chúng không sửa đổi chuỗi ban đầu. Các chuỗi là không thay đổi: strings không thể thay đổi, chỉ thay thế.

Trích xuất các ký tự chuỗi

Có 2 phương thức an toàn để trích xuất các ký tự chuỗi:

  • charAt(position)
  • charCodeAt(position)

Phương thức charAt()

Phương thức charAt() trả về ký tự tại một chỉ mục (vị trí) chỉ định trong một chuỗi:

var str = “HELLO WORLD”;
str.charAt(0);            // returns H

Phương thức charCodeAt()

Phương thức charCodeAt() trả về mã unicode của ký tự tại một chỉ mục được chỉ định trong một chuỗi:

var str = “HELLO WORLD”;

str.charCodeAt(0);         // returns 72

Cẩn thận khi truy cập một chuỗi như một mảng

Bạn có thể đã thấy mã như thế này, truy cập vào một chuỗi như là một mảng:

var str = “HELLO WORLD”;

str[0];                   // returns H

Điều này không an toàn bởi vì:

  • Không hoạt động trong tất cả các trình duyệt (không có trong IE5, IE6, IE7)
  • Làm cho chuỗi giống như mảng (nhưng không phải là mảng)
  • str [0 ]= “H” không báo lỗi (nhưng không hoạt động)

Nếu bạn muốn đọc một chuỗi như là một mảng, chuyển đổi nó thành một mảng đầu tiên.

Chuyển đổi một chuỗi thành mảng

Một chuỗi có thể được chuyển đổi sang một mảng với phương thức split():

var txt = “a,b,c,d,e”;   // String
txt.split(“,”);          // Split on commas
txt.split(” “);          // Split on spaces
txt.split(“|”);          // Split on pipe

Nếu dấu phân tách bị bỏ qua, mảng trả về sẽ chứa toàn bộ chuỗi trong chỉ mục [0]. Nếu dấu phân cách là “”, mảng trả về sẽ là một mảng các ký tự đơn:

var txt = “Hello”;       // String
txt.split(“”);           // Split in characters