Tách số trong chuỗi JavaScript | Laptrinhcanban.com

Tách số trong chuỗi JavaScript

Hướng dẫn cách tách số trong chuỗi JavaScript. Bạn sẽ học được cách tìm số trong chuỗi JavaScript cũng như các phương pháp tách số trong chuỗi bằng cách sử dụng phương thức replace() hoặc là match() kết hợp với Regular Expression trong JavaScript sau bài học này.

Chúng ta có 5 phương pháp để tách số trong chuỗi JavaScript như sau:

  • Tách tất cả các số trong chuỗi JavaScript
  • Tách số đầu tiên trong chuỗi JavaScript
  • Tách dãy số đầu tiên xuất hiện trong chuỗi JavaScript
  • Tách số cuối cùng trong chuỗi JavaScript
  • Tách dãy số cuối cùng trong chuỗi JavaScript

Lại nữa, nếu bạn muốn tách ký tự trong chuỗi JavaScript, hãy tham khảo bài viết tách chuỗi JavaScript nhé.

Regular Expression trong JavaScript

Regular Expression trong JavaScript, hay còn gọi là biểu thức chính quy với cách viết tắt là RegEx trong JavaScript, là một phương thức mô phỏng một chuỗi ký tự theo những quy tắc cú pháp nhất định. Chúng ta thường sử dụng Regular Expression khi muốn tìm kiếm , lấy ra hoặc thay thế một chuỗi ký tự có cấu trúc chỉ định trong JavaScript.

Đây là một kỹ thuật thường được sử dụng khi xử lý một lượng lớn văn bản trong một chương trình.

Regular Expression trong JavaScript là gì

Và nếu bạn biết cách sử dụng, bạn có thể dễ dàng tìm kiếm cũng như tách số trong chuỗi JavaScript bằng regular expression trong JavaScript.

Sau đây, chúng ta sẽ cùng tìm hiểu cách tách số trong chuỗi bằng cách sử dụng ReGex trong JavaScript.

Tách tất cả các số trong chuỗi JavaScript

Để tách tất cả các số trong chuỗi JavaScript, chúng ta dùng phương thức replace để tìm kiếm và thay thế hết các ký tự không phải là số trong JavaScript thành ký tự trống. Kết quả các ký tự còn lại sẽ chỉ còn là số mà thôi. Khi sử dụng RegEX để biểu diễn các ký tự, lưu ý là chúng ta cần chỉ định RegEx dưới dạng Global flag để có thể tiến hành thay thế ký tự trên toàn bộ chuỗi ban đầu.

RegEX biểu diễn các ký tự không phải là số dưới dạng Global flag/[^0-9]/g , và chúng ta sẽ dùng replace() kèm RegEx này để tách tất cả các số trong chuỗi JavaScript với cú pháp sau đây:

string.replace(/[^0-9]/g , '')

Một ví dụ đơn giản:

let mystr = '56789abc345de12345';
let split_str = mystr.replace(/[^0-9]/g, '');
console.log(split_str);
//> 5678934512345

Tách số đầu tiên trong chuỗi JavaScript

Để tách số đầu tiên trong chuỗi JavaScript, trước tiên chúng ta cần phải tìm số đầu tiên trong chuỗi JavaScript bằng cách sử dụng phương thức match() và regular expression. Sau khi đã tìm ra số đầu tiên đó trong chuỗi, chúng ta chỉ cần lấy giá trị của số đó là hoàn thành xong việc tách số đầu tiên trong chuỗi JavaScript.

RegEx biểu diễn số trong JavaScript là /[0-9]/, và chúng ta sẽ dùng thức match() kèm với RegEx này để tách số đầu tiên trong chuỗi JavaScript với cú pháp sau đây:

string.match(/[0-9]/)[0]

Ví dụ cụ thể.

let mystr = 'abc123def567';
let split_str = mystr.match(/[0-9]/)[0];
console.log(split_str);
//> 1

Rất là đơn giản phải không nào?

Tách dãy số đầu tiên xuất hiện trong chuỗi JavaScript

Trong phần trên chúng ta đã biết sử dụng phương thức match() kèm với RegEx để tách số đầu tiên trong chuỗi JavaScript. Bằng một chút thay đổi trong RegEx, chúng ta cũng có thể dùng phương pháp tương tự để tách dãy số đầu tiên xuất hiện trong chuỗi JavaScript.

Chúng ta thêm dấu cộng + vào RegEx ở trên và RegEx lúc này sẽ là /[0-9]+/. Chúng ta sẽ dùng thức match() kèm với RegEx này để tách dãy số đầu tiên trong chuỗi JavaScript với cú pháp sau đây:

string.match(/[0-9]+/)[0]

Ví dụ cụ thể.

let mystr = 'abc123def567';
let split_str = mystr.match(/[0-9]+/)[0];
console.log(split_str);
//> 123

Cũng không quá phức tạp phải không nào?

Tách số cuối cùng trong chuỗi JavaScript

Trong trường hợp ký tự cuối cùng trong một chuỗi ký tự là một chữ số, chúng ta có thể sử dụng phương thức match() kèm với RegEx để tách số cuối cùng trong chuỗi JavaScript đó ra.

Lần này chúng ta cần dùng RegEx /[0-9]$/ với cú pháp sau đây :

str.match(/[0-9]$/)[0]

Ví dụ cụ thể.

let str = "abcdefg123";
console.log(str.match(/[0-9]$/)[0]);
//> 3

Lưu ý là cách này chỉ sử dụng được khi ký tự cuối cùng trong chuỗi là một chữ số mà thôi. Nếu như ký tự đó là một chữ thì lỗi sẽ xảy ra như sau:

let str = "abcdefg123a";
console.log(str.match(/[0-9]$/)[0]);

>>>TypeError: Cannot read property '0' of null

Để tránh lỗi này xảy ra, chúng ta có thể thêm toán tử điều kiện với cùng phương pháp ở trên như sau:

let str = "abcdefg123";
let str_match = str.match(/[0-9]$/);
let str_match_result = (str_match)?str_match[0]:null;
console.log(str_match_result);
//> 3

let str2 = "abcdefg123xyz";
let str_match2 = str2.match(/[0-9]$/);
let str_match_result2 = (str_match2)?str_match2[0]:null;
console.log(str_match_result2);
//> null

Tách dãy số cuối cùng trong chuỗi JavaScript

Một cách tương tự, chúng ta cũng có thể tách dãy số cuối cùng trong chuỗi JavaScript với cùng phương thức như trên.

Khi này chúng ta sẽ dùng RegEx /[0-9]+$/ với cú pháp sau đây :

string.match(/[0-9]+$/)[0]

Ví dụ:

let str = "abcdefg123";
console.log(str.match(/[0-9]+$/)[0]);
//> 123

Tương tự ở trên, chúng ta cũng có thể tránh lỗi khi chuỗi ký tự không được kết thúc bởi dãy số khiến macth() không tìm ra kết quả như sau:

let str = "abcdefg123";
let str_match = str.match(/[0-9]+$/);
let str_match_result = (str_match)?str_match[0]:null;
console.log(str_match_result);
//> 123

let str2 = "abcdefg123xyz";
let str_match2 = str2.match(/[0-9]+$/);
let str_match_result2 = (str_match2)?str_match2[0]:null;
console.log(str_match_result2);
//> null

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về các cách tìm số trong chuỗi cũng như là cách tách số trong chuỗi JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.