Kiểm tra xem ký tự trong chuỗi có phải là số # không
Để kiểm tra xem một ký tự là một số, hãy truyền ký tự làm tham số cho hàm isNaN[]
. Hàm kiểm tra xem giá trị được cung cấp là NaN
[không phải số]. Nếu hàm trả về false
, thì ký tự là một số hợp lệ.
Copied!
function isNumber[char] { if [typeof char !== 'string'] { return false; } if [char.trim[] === ''] { return false; } return !isNaN[char]; } const str = 'a1'; console.log[isNumber[str[0]]]; // 👉️ false console.log[isNumber[str[1]]]; // 👉️ true console.log[isNumber['123']]; // 👉️ true console.log[isNumber['']]; // 👉️ false console.log[isNumber[undefined]]; // false
Trước tiên, chúng tôi kiểm tra xem giá trị được truyền cho hàm không phải là loại string
, trong trường hợp đó chúng tôi trả lại false
ngay lập tức.
Sau đó, chúng tôi kiểm tra xem giá trị được cung cấp là một chuỗi trống hoặc chỉ chứa khoảng trắng, trong trường hợp đó chúng tôi cũng trả về false
.
Cuối cùng, chúng tôi sử dụng hàm isnan để kiểm tra xem ký tự được cung cấp không phải là số.
Toán tử logic không [!] Được sử dụng để phủ định giá trị được trả về từ hàm
1 [không phải là số].Copied!
console.log[isNaN['a']]; // 👉️ true console.log[isNaN['']]; // 👉️ false console.log[isNaN[' ']]; // 👉️ false
Hàm Copied! Copied!
1 cố gắng chuyển đổi chuỗi thành một số và nếu nó thất bại, nó sẽ trả về console.log[isNaN['a']]; // 👉️ true
console.log[isNaN['']]; // 👉️ false
console.log[isNaN[' ']]; // 👉️ false
3.console.log[isNaN['a']]; // 👉️ true
console.log[isNaN['']]; // 👉️ false
console.log[isNaN[' ']]; // 👉️ false
Copied!
console.log[isNaN['a']]; // 👉️ true console.log[isNaN['']]; // 👉️ false console.log[isNaN[' ']]; // 👉️ false
Điều này có vẻ khá khó hiểu lúc đầu, nhưng hàm Copied!
1 chuyển đổi một chuỗi trống hoặc một chuỗi chứa khoảng trắng thành một số [0], do đó, nó trả về console.log[isNaN['a']]; // 👉️ true
console.log[isNaN['']]; // 👉️ false
console.log[isNaN[' ']]; // 👉️ false
false
.
Copied!
console.log[Number['']]; // 👉️ 0 console.log[Number[' ']]; // 👉️ 0
Đây là lý do tại sao chúng tôi đã sử dụng phương thức
6 - để cắt chuỗi và xác minh rằng đó không phải là một chuỗi trống.Copied!
console.log[isNaN['a']]; // 👉️ true console.log[isNaN['']]; // 👉️ false console.log[isNaN[' ']]; // 👉️ false
Chúng tôi biết rằng nếu hàm Copied! Copied!
1 được gọi với một chuỗi chứa ít nhất 1 ký tự và trả về console.log[isNaN['a']]; // 👉️ true
console.log[isNaN['']]; // 👉️ false
console.log[isNaN[' ']]; // 👉️ false
3, thì chuỗi không phải là một số hợp lệ.console.log[isNaN['a']]; // 👉️ true
console.log[isNaN['']]; // 👉️ false
console.log[isNaN[' ']]; // 👉️ false
Ngược lại, nếu hàm Copied!
1 được gọi với một chuỗi chứa ít nhất 1 ký tự và trả về console.log[isNaN['a']]; // 👉️ true
console.log[isNaN['']]; // 👉️ false
console.log[isNaN[' ']]; // 👉️ false
false
, thì chuỗi là một số hợp lệ.
Dưới đây là một số ví dụ khác về việc gọi isNaN[]
với chuỗi.
Copied!
console.log[isNaN['123']]; // 👉️ false console.log[isNaN['1.23']]; // 👉️ false console.log[isNaN['1,23']]; // 👉️ true console.log[isNaN['123test']]; // 👉️ true
Một giải pháp thay thế là sử dụng một biểu thức chính quy.
Kiểm tra xem ký tự trong chuỗi có phải là số có regex # không
Sử dụng phương thức Copied! Copied! Copied! Copied!
2 trên biểu thức chính quy sau để kiểm tra xem ký tự là số - console.log[Number['']]; // 👉️ 0
console.log[Number[' ']]; // 👉️ 0
3. Phương thức console.log[Number['']]; // 👉️ 0
console.log[Number[' ']]; // 👉️ 0
4 sẽ trả về console.log[Number['']]; // 👉️ 0
console.log[Number[' ']]; // 👉️ 0
3 nếu ký tự là số hợp lệ, nếu không nó sẽ trả về console.log[isNaN['a']]; // 👉️ true
console.log[isNaN['']]; // 👉️ false
console.log[isNaN[' ']]; // 👉️ false
false
.
Copied!
function isNumber[char] { return /^\d$/.test[char]; } const str = 'a1'; console.log[isNumber[str[0]]]; // 👉️ false console.log[isNumber[str[1]]]; // 👉️ true console.log[isNumber['100']]; // 👉️ true console.log[isNumber['']]; // 👉️ false console.log[isNumber[undefined]]; // false
Chúng tôi đã tạo một hàm có thể tái sử dụng kiểm tra xem ký tự được cung cấp là một số.
Chúng tôi đã sử dụng phương pháp regexp.test để kiểm tra biểu thức chính quy so với ký tự.
Nếu biểu thức chính quy được khớp, phương thức trả về Copied!
3, nếu không nó sẽ trả về console.log[isNaN['a']]; // 👉️ true
console.log[isNaN['']]; // 👉️ false
console.log[isNaN[' ']]; // 👉️ false
false
.
Tiền đạo chém
9 đánh dấu sự khởi đầu và kết thúc của biểu thức chính quy.Copied!
console.log[Number['']]; // 👉️ 0 console.log[Number[' ']]; // 👉️ 0
CARET
0 phù hợp với sự khởi đầu của đầu vào và dấu hiệu đồng đô laCopied!
console.log[isNaN['123']]; // 👉️ false console.log[isNaN['1.23']]; // 👉️ false console.log[isNaN['1,23']]; // 👉️ true console.log[isNaN['123test']]; // 👉️ true
1 phù hợp với phần cuối của đầu vào.Copied!
console.log[isNaN['123']]; // 👉️ false console.log[isNaN['1.23']]; // 👉️ false console.log[isNaN['1,23']]; // 👉️ true console.log[isNaN['123test']]; // 👉️ true
Ký tự Copied!
2 khớp với bất kỳ chữ số nào từ 0 đến 9.console.log[isNaN['123']]; // 👉️ false
console.log[isNaN['1.23']]; // 👉️ false
console.log[isNaN['1,23']]; // 👉️ true
console.log[isNaN['123test']]; // 👉️ true
Nếu bạn cần trợ giúp đọc một biểu thức thông thường, hãy xem Regex Cheatsheet này từ MDN.
Nếu ký tự chúng ta truyền dưới dạng tham số cho hàm là một số, hàm
3 sẽ trả vềCopied!
console.log[isNaN['123']]; // 👉️ false console.log[isNaN['1.23']]; // 👉️ false console.log[isNaN['1,23']]; // 👉️ true console.log[isNaN['123test']]; // 👉️ true
3, trong tất cả các trường hợp khác, nó sẽ trả vềCopied!
console.log[isNaN['a']]; // 👉️ true console.log[isNaN['']]; // 👉️ false console.log[isNaN[' ']]; // 👉️ false
false
.Đọc thêm #
- Cách kiểm tra xem một ký tự có phải là chữ cái trong JavaScript không
- Viết hoa chữ cái đầu tiên của mỗi từ trong mảng trong js