Làm cách nào để kiểm tra xem ký tự đầu tiên của chuỗi có phải là số JavaScript không?

Trong bài đăng này, chúng tôi sẽ thảo luận về một vấn đề phổ biến mà chúng tôi gặp phải trong JavaScript và các ngôn ngữ lập trình khác khi làm việc với các chuỗi. Vấn đề là kiểm tra xem một chuỗi có bắt đầu bằng một số hay không, i. e. để kiểm tra xem ký tự đầu tiên của chuỗi có phải là số hay ký tự nào khác không

Chúng ta sẽ tìm hiểu những cách khác nhau để làm điều đó trong bài đăng này

Phương thức charCodeAt trả về ký tự unicode tại một chỉ mục hoặc vị trí nhất định của một chuỗi. Phương thức này lấy chỉ số của ký tự làm tham số và trả về giá trị unicode của ký tự đó

Chỉ số của các ký tự bắt đầu từ 0 và kết thúc ở độ dài chuỗi - 1. Chúng ta có thể chuyển 0 làm tham số cho hàm này để lấy giá trị unicode cho ký tự đầu tiên

Chúng ta cần so sánh giá trị với 48 và 57. charCodeAt của '0' là 48 và charCodeAt của '9' là 57

Vì vậy, chúng ta có thể viết một hàm trả về true hoặc false dựa trên giá trị unicode của ký tự đầu tiên của chuỗi

Dưới đây là chương trình hoàn chỉnh

const isFirstCharNum = (str) =>
  str.charCodeAt(0) > 47 && str.charCodeAt(0) < 58;

const strArrays = ["hello", "0123", "0hello", "#4676", "0", ""];

strArrays.forEach((str) =>
  console.log(`${str} starts with a number => ${isFirstCharNum(str)}\n`)
);

Trong ví dụ này,

  • Hàm isFirstCharNum dùng để kiểm tra xem ký tự đầu tiên của chuỗi có phải là số hay không. Nó trả về một giá trị boolean, true nếu ký tự đầu tiên là một số, ngược lại nó trả về false
  • strArrays là một mảng các chuỗi
  • Chúng tôi đang lặp lại từng chuỗi của mảng này và gọi phương thức isFirstCharNum để nhận kết quả

Nếu bạn chạy chương trình này, nó sẽ in đầu ra như bên dưới

hello starts with a number => false

0123 starts with a number => true

0hello starts with a number => true

#4676 starts with a number => false

0 starts with a number => true

 starts with a number => false

JavaScript check string starts with number

Chúng ta cũng có thể sử dụng phương thức charAt để có được kết quả tương tự. Phương thức này được sử dụng để lấy ký tự ở một vị trí cụ thể của chuỗi trong JavaScript. Nó được định nghĩa như dưới đây

Nó sẽ trả về ký tự tại vị trí i của chuỗi str. Ta có thể so sánh ký tự này với '0' và '9' để biết ký tự đó có phải là ký tự số hay không

Hãy viết lại chương trình trên

const isFirstCharNum = (str) => str.charAt(0) >= "0" && str.charAt(0) <= "9";

const strArrays = ["hello", "0123", "0hello", "#4676", "0", ""];

strArrays.forEach((str) =>
  console.log(`${str} starts with a number => ${isFirstCharNum(str)}\n`)
);

Nó sẽ cho kết quả giống như chương trình trên

hello starts with a number => false

0123 starts with a number => true

0hello starts with a number => true

#4676 starts with a number => false

0 starts with a number => true

 starts with a number => false

Hàm isNaN dùng để kiểm tra xem một số có phải là số không. NaN là viết tắt của Not-a-Number và hàm isNaN() trả về giá trị true nếu giá trị không phải là số. Khác, nó trả về false

Hãy cùng xem chương trình dưới đây

const testValues = [10, 10.5, -2.39, "0", "a", "23", "a233"];

testValues.forEach((str) => console.log(`${str} => ${!isNaN(str)}`));

Nó đang in giá trị không phải của isNaN cho mỗi giá trị của mảng testValues. Nếu bạn chạy chương trình này, nó sẽ in đầu ra bên dưới

10 => true
10.5 => true
-2.39 => true
0 => true
a => false
23 => true
a233 => false

Vì thế,. isNaN() trả về true nếu tham số là số, ngược lại trả về false

Hãy sử dụng nó để kiểm tra xem ký tự đầu tiên của chuỗi có phải là số hay không

const isFirstCharNum = (str) => !isNaN(str.charAt(0));

const strArrays = ["hello", "0123", "0hello", "#4676", "0", ""];

strArrays.forEach((str) =>
  console.log(`${str} starts with a number => ${isFirstCharNum(str)}\n`)
);

Nếu bạn chạy chương trình này, nó sẽ in đầu ra bên dưới

hello starts with a number => false

0123 starts with a number => true

0hello starts with a number => true

#4676 starts with a number => false

0 starts with a number => true

 starts with a number => true

Ngoại lệ

Đối với một chuỗi rỗng, nó trả về true. Bởi vì, chuỗi rỗng được hiểu là 0 trong JavaScript và isNaN trả về false cho nó

Phương pháp 4. Bằng cách sử dụng một biểu thức chính quy, Regex

Chúng ta có thể sử dụng biểu thức chính quy để so khớp ký tự đầu tiên của chuỗi và kiểm tra xem đó có phải là số hay không. Để so khớp ký tự đầu tiên của chuỗi và để kiểm tra xem đó có phải là số hay không, chúng ta cần sử dụng /^\d/. Ở đây, các ký tự / được sử dụng để khớp với phần đầu và phần cuối của chuỗi, ^ xác định phần đầu của chuỗi và \d khớp nếu ký tự đầu tiên có phải là một chữ số hay không

Chúng ta có thể sử dụng mẫu này theo hai cách. Chúng ta có thể sử dụng chức năng khớp của chuỗi hoặc chúng ta có thể sử dụng chức năng kiểm tra

a) Bằng cách sử dụng hàm match()

Hàm match() so khớp một chuỗi với một biểu thức chính quy. Nó lấy một đối tượng biểu thức chính quy làm tham số và trả về null nếu không tìm thấy kết quả khớp hoặc một mảng. Chúng tôi có thể kiểm tra nếu trả về không phải là null, thì chuỗi bắt đầu bằng một số

Làm cách nào để kiểm tra xem chữ cái đầu tiên có phải là số trong JavaScript không?

giá trị. match(/^\d+/)) để kiểm tra xem phần đầu của trường có được tạo bởi các số không. Nghĩa đen là bất cứ điều gì bắt đầu bằng số.

Làm cách nào để kiểm tra xem chuỗi có bắt đầu bằng một số trong JavaScript không?

Phương thức startedWith() trả về true nếu một chuỗi bắt đầu bằng một chuỗi đã chỉ định . Nếu không nó trả về false. Phương thức startedWith() phân biệt chữ hoa chữ thường. Xem thêm phương thức endWith().

Làm cách nào để kiểm tra xem ký tự có phải là số trong JavaScript không?

Để kiểm tra xem một ký tự có phải là số hay không, chuyển ký tự đó làm tham số cho hàm isNaN() . Hàm kiểm tra xem giá trị được cung cấp có phải là NaN (không phải số). Nếu hàm trả về false thì ký tự là số hợp lệ.

Làm cách nào để kiểm tra ký tự đầu tiên của chuỗi trong JavaScript?

Lấy ký tự đầu tiên của chuỗi . GHI CHÚ. charAt thích hợp hơn là sử dụng [ ] (ký hiệu ngoặc) như str. charAt(0) trả về một chuỗi rỗng ( '' ) cho str = '' thay vì không xác định trong trường hợp ''[0]. use the charAt() method, at index 0, to select the first character of the string. NOTE: charAt is preferable than using [ ] (bracket notation) as str. charAt(0) returns an empty string ( '' ) for str = '' instead of undefined in case of ''[0] .