Kiểm tra số trong chuỗi javascript

Các số là một loại nguyên thủy trong JavaScript, nhưng chỉ sử dụng typeof sẽ không phân biệt các số với NaN hoặc Infinity

Ảnh của Alex Chambers trên Bapt

Thật rất hữu ích khi biết cách kiểm tra xem một giá trị có thuộc loại số nguyên thủy hay không, vì JavaScript là ngôn ngữ được nhập động.

Cách dễ nhất để kiểm tra một số là sử dụng typeof, nó sẽ trả về chuỗi "number" cho bất kỳ giá trị nào thuộc kiểu số nguyên thủy, bao gồm NaN, Infinity-Infinity

Một ví dụ khi một số có thể hiển thị dưới dạng một loại khác, biểu thị một lỗi trong mã của tôi, sẽ là phân tích cú pháp đơn vị tiền tệ

Trong trường hợp này, tôi sẽ biết rằng tôi đã quên phân tích cú pháp chuỗi thành một số khi tôi nhận lại giá trị “string” từ typeof

Ảnh của Samuel Zeller trên Bapt Bắt lỗi phân tích cú pháp

Nếu Tôi sử dụng parseFloat[] để kiểm tra giá trị tiền tệ, nhưng tôi quên loại bỏ ký hiệu tiền tệ, tôi nhận được một phân tích cú pháp không thành công và một kết quả kỳ lạ.

Ôi không. Trong trường hợp này, có vẻ như typeof không hoạt động như tôi mong đợi — vì giá trị typeof0 được coi là số trong JavaScript

Ảnh của Gemma Evans trên BaptKhi từ khóa typeof trả về “số”

Một giải pháp rõ ràng để kiểm tra kiểu nguyên thủy số là sử dụng từ khóa thetypeof, như tôi đã trình bày ở trên.

Nhưng typeof là một giải pháp không hoàn chỉnh, vì có hai giá trị đặc biệt trong JavaScript. typeof4 [“Không phải là số”] và typeof5

Đối với ví dụ về tiền tệ của tôi, tôi biết mình gặp lỗi nếu giá trị tiền tệ của tôi là typeof0 hoặc typeof7, nhưng typeof trả về "number" cho cả hai giá trị này

Có lẽ đầu vào của tôi được viết bằng ký hiệu tiền tệ và tôi chỉ cố gắng sử dụng parseFloat[] để nắm bắt giá trị. Điều đó sẽ dẫn đến typeof0

Ảnh của Timo Kaiser trên UnsplashMột chức năng "number"2 tùy chỉnh

A hàm "number"2 tùy chỉnh, mạnh mẽ sẽ sử dụng typeof để kiểm tra loại nguyên thủy, kiểm tra giá trị "number"5 và kiểm tra "number"6.

Hoặc, trong trường hợp một người tự tin rằng typeof0 và typeof7 sẽ không xuất hiện, chỉ cần kiểm tra rằng "number"9 là đủ

Ảnh của 🇨🇭 Claudio Schwarz. @purzlbaum trên BaptThe one-liner

Tôi thích những chiếc áo lót. Tôi nghĩ rằng chúng cần được ghi lại bằng các bình luận, nhưng tôi nghĩ chúng thực sự rất hữu ích, không chỉ là những thứ hoa mỹ.

Đây là một lớp lót về cách kiểm tra một số trong JavaScript

Tuy nhiên, có một cách tốt hơn để kiểm tra số lượng hữu hạn trong JavaScript — hàm trợ giúp NaN0 có hành vi giống như hàm tùy chỉnh "number"2 mà tôi đã viết. Tôi bao gồm một ví dụ trong phần tiếp theo

Ảnh của Bernard Hermant trên BaptCách dễ nhất để kiểm tra một số. NaN0

Việc thực sự không cần thiết phải viết các hàm tùy chỉnh để kiểm tra một số, mặc dù đó là một cách hữu ích để ghi nhớ rằng các giá trị JavaScript typeof7, NaN4 và typeof0 đều là .

“Phương thức NaN6 xác định xem giá trị được truyền có phải là một số hữu hạn hay không. ” — Tài liệu MDN

Phương thức NaN7 sẽ trả về NaN8 cho số hữu hạn và NaN9 cho typeof7, NaN4 và typeof0— chính xác những gì chúng ta muốn

Ngoài ra còn có hàm toàn cục Infinity3, hàm này sẽ thực hiện ép buộc kiểu [chẳng hạn như ép buộc các chuỗi thành số], như minh họa ở trên

Tôi thảo luận sâu về các phương pháp này trong bài viết của tôi về Infinity trong The Startup

Vô cực trong JavaScript là gì?

Infinity thực sự là một giá trị trong JavaScript, đại diện cho vô cực toán học [∞]. Hãy chuẩn bị khi nó bật lên trong…

Trung bình. com

Ảnh của Bogomil Mihaylov trên BaptKiểm tra xem một biến có phải là số nguyên không

Để kiểm tra xem biến A có phải là số nguyên hay không. Tôi có thể sử dụng toán tử đẳng thức lỏng lẻo Infinity5 để xem liệu giá trị được phân tích cú pháp có bằng chính nó không.

Đoạn mã sau đưa ra một ví dụ về cách kiểm tra một số nguyên

Việc sử dụng typeof sẽ phân biệt một chuỗi đang bị ép buộc thành một số với một số thực tế, giống như toán tử đẳng thức nghiêm ngặt Infinity7

Ảnh của Markus Spiske trên BaptLột bỏ các ký hiệu tiền tệ

F hoặc một chức năng tốt hơn, mạnh mẽ hơn, trước tiên tôi có thể muốn loại bỏ các ký hiệu tiền tệ [chẳng hạn như ký hiệu đô la và bất kỳ dấu phẩy nào].

Phân tích kỹ lưỡng tiền bằng cách sử dụng các biểu thức chính quy trong JavaScript nằm ngoài phạm vi của bài viết này, nhưng mã này loại bỏ Infinity8 và Infinity9 trước khi phân tích cú pháp

Lưu ý rằng các hàm toàn cục -Infinity0 và -Infinity1 sẽ ép buộc các giá trị vào chuỗi, nếu cần và sẽ trả về typeof0 nếu việc ép buộc không thành công

Ngoài ra còn có các chức năng -Infinity3 và -Infinity4, có cùng hành vi chính xác

Theo Tài liệu MDN, các chức năng trùng lặp đó đã được thêm vào ECMAScript 2015 cho “mục đích [của] mô đun hóa toàn cầu. ”

Ảnh của Toa Heftiba trên Bapt. JavaScript có thực sự có các số nguyên riêng biệt không?

N o, JavaScript chỉ có một loại số, được biểu diễn bên trong dưới dạng biểu diễn dấu phẩy động 64 bit.

Dấu phẩy động đó là kiểu dữ liệu nguyên thủy số, ngoài ra còn có một kiểu gọi là BigInt có thể được sử dụng cho các số lớn tùy ý

Các hàm toàn cục -Infinity0 và -Infinity1 khác nhau về những gì chúng mong đợi và sẽ xuất ra, nhưng không phải vì thực sự có các loại số nguyên và dấu phẩy động riêng biệt trong JavaScript

Ảnh của Volkan Olmez trên BaptKết luận

C việc tìm kiếm một số trong JavaScript không đặc biệt phức tạp — về cơ bản, typeof hoạt động như bình thường, miễn là người ta biết rằng cả typeof0 và typeof7 đều có số typeof.

Cách dễ nhất để kiểm tra một số hữu hạn [i. e. không phải typeof0 hoặc typeof7] trong JavaScript đang sử dụng NaN0, không ép buộc các giá trị thành số hoặc toàn cầu string4, thực hiện ép buộc kiểu

Kiểm tra một số nguyên cụ thể liên quan đến việc sử dụng hàm string5, tiếp theo là so sánh giá trị được phân tích cú pháp với chính nó bằng cách sử dụng string6 [sẽ nhập các giá trị không phải là số, chẳng hạn như chuỗi thành số] hoặc string7 [sẽ chỉ trả về true nếu cả hai giá trị đều là số

Về cơ bản, số nguyên và số float đều giống nhau. JavaScript chỉ có một loại số, kiểu số nguyên thủy

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

Để kiểm tra xem một chuỗi có chứa số trong JavaScript hay không, gọi phương thức test[] trên biểu thức chính quy này . /\d/. test[] sẽ trả về true nếu chuỗi chứa số.

Làm cách nào để kiểm tra giá trị số trong JavaScript?

phương thức isInteger[] trả về true nếu một giá trị là số nguyên của kiểu dữ liệu Number. Nếu không nó trả về false.

Làm cách nào để kiểm tra xem một chuỗi là số hay ký tự trong JavaScript?

Hãy thử hàm isNan . Hàm isNaN[] xác định xem một giá trị có phải là số không hợp lệ [Không phải là số]. Hàm này trả về true nếu giá trị bằng NaN. Nếu không nó trả về false.

Chủ Đề