在 JavaScript 中檢查字串是否為數字
-
使用
isNaN()
函數在JavaScript中檢查所給定的字符串是否為數字 -
使用
+
運算符在JavaScript中檢查所給定的字符串是否為數字 -
使用
parseInt()
函數在JavaScript中檢查所給定的字符串是否為數字 -
使用
Number()
函數在JavaScript中檢查所給定的字符串是否為數字 - 使用正則表達式在JavaScript中檢查所給定的字符串是否為數字或非數字
編程語言中的數字是表示整數、浮點數等數據類型。字符串表示所有字符,而不僅限於數值。字符串可以包含數值。
在本文中,我們將檢查所給定的字符串是否為數字。
使用isNaN()
函數在JavaScript中檢查所給定的字符串是否為數字
isNaN()
函數代表is Not-a-Number
,它是一個內置的JavaScript函數,用於判斷給定的值是否為非數字值,包括實際數字和數字字符串。
isNaN()
函數返回true
,如果值不是數字,返回false
,如果它是一個數字或可以轉換為有效的數字。
以下是isNaN()
函數的基本語法:
isNaN(value)
value
:要檢查是否為數字的值。這可以是變量、常量或表達式。
例子:
console.log(isNaN('195'))
console.log(isNaN('boo'))
console.log(isNaN('100px'))
輸出:
false
true
true
如果我們想要創建一個對於有效值返回true
的函數,我們可以通過創建一個否定isNaN()
函數輸出的函數來實現。
function isNum(val) {
return !isNaN(val)
}
console.log(isNum('aaa'));
console.log(isNum('13579'));
console.log(isNum('-13'));
輸出:
false
true
true
現在,這個名為isNum()
的函數將對於有效的數值返回true
。
處理包含小數的數字字符串
isNaN()
函數非常靈活,可以處理包含小數點的數字字符串。例如:
const str = '3.14'; // The string we want to check
const isNumeric = isNaN(str);
if (isNumeric) {
console.log(`${str} is NOT a number.`);
} else {
console.log(`${str} is a number.`);
}
輸出將正確識別'3.14'
為數字:
3.14 is a number.
使用+
運算符在JavaScript中檢查所給定的字符串是否為數字
JavaScript中的+
運算符具有兩個功能:它既可以用於算數加法,也可以用作一元運算符進行類型轉換。
當應用於字符串時,+
運算符會嘗試將它們轉換為數值。如果字符串可以成功轉換為數字,結果將是一個有效的數字;否則,結果將為NaN
(非數字)。
例如,
console.log(+'195')
console.log(+'boo')
輸出:
195
NaN
使用parseInt()
函數在JavaScript中檢查所給定的字符串是否為數字
JavaScript中的parseInt()
方法用於解析一個字符串並將其轉換為整數(整數)。它從左到右讀取字符串,直到遇到一個不是整數的有效部分,然後停止解析。
使用parseInt()
的基本語法如下:
parseInt(string[, radix]);
string
:要解析並轉換為整數的字符串。radix
(可選):介於2和36之間的整數,表示字符串中使用的數字系統的基數。該參數是可選的,如果省略,JavaScript假定基數為10(十進制)。
當無法從字符串中提取數字時,它將返回NaN。
例如,
console.log(parseInt('195'))
console.log(parseInt('boo'))
輸出:
195
NaN
處理具有基數的數字字符串
parseInt()
方法還允許您指定字符串中使用的基數(基數)。例如,您可以解析二進制(基數2)、八進制(基數8)或十六進制(基數16)數字。
以下是解析十六進制字符串的示例:
const hexString = '1A'; // Hexadecimal string
const intValue = parseInt(hexString, 16); // Specify base 16
if (isNaN(intValue)) {
console.log(`${hexString} is NOT a number.`);
} else {
console.log(`${hexString} is a number.`);
}
在這種情況下,輸出將正確識別'1A'
為十六進制數字:
1A is a number.
使用Number()
函數在JavaScript中檢查所給定的字符串是否為數字
Number()
函數將參數轉換為表示對象值的數字。如果不能將值轉換為數字,它將返回NaN。
我們也可以將其與字符串一起使用,以檢查所給定的字符串是否為數字。
例如,
console.log(Number('195'))
console.log(Number('boo'))
輸出:
195
NaN
使用正則表達式在JavaScript中檢查所給定的字符串是否為數字或非數字
正規表示式(常簡稱為 regex)是一個定義一組字串的模式。它可用於字串中的模式匹配,使其成為一個用於字串驗證等任務的多用途工具。
在 JavaScript 中,您可以使用 RegExp
構造函式或使用斜線之間的正規表示式字面值來創建正規表示式,例如 /pattern/
。
我們可以使用這樣的模式來檢查一個字串是否包含數字。
首先,我們需要定義一個匹配數值的正規表示式模式。我們可以創建一個簡單的模式,可以匹配正負整數以及浮點數:
const numberPattern = /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;
這個模式的作用如下:
^
:斷言字串開頭。[-+]?
:匹配可選的正負號。[0-9]*
:匹配小數點前的零個或多個數字。\.?
:匹配可選的小數點。[0-9]+
:匹配小數點後的一個或多個數字。([eE][-+]?[0-9]+)?
:匹配可選的指數部分,例如e-3
或E+4
。
現在,將這個正規表示式模式的 test()
方法應用到字串上。test()
方法如果字串與模式匹配則返回 true
,否則返回 false
:
const isNumber = numberPattern.test(str);
例如,
function isNumeric(val) {
return /^-?\d+$/.test(val);
}
console.log(isNumeric('aaa'));
console.log(isNumeric('13579'));
console.log(isNumeric('-13'));
輸出:
false
true
true