我們在開發時可能需要找到只包含數字而不包含任何其他字元的字串。最簡單的檢查方法是解析字串中的數字並將其長度與原始字串的長度進行比較。如果兩者相同,則表示該字串僅包含數字。使用者可以使用parseInt()方法來解析字串中的數字。
但是,在本教程中,我們將學習其他方法來檢查 JavaScript 中的字串是否僅包含數字。
我們可以使用 for 迴圈來遍歷字串。我們可以使用索引值和 charCodeAt() 方法來取得字串中的每個字符,以取得其 ASCII 值。之後,我們可以將字元的 ASCII 值與數字的 ASCII 值進行比較,得出該字元是數字還是非數字字元。
使用者可以按照以下語法檢查字串是否僅包含數字。
function isOnlyDigits(string) { for (let i = 0; i < string.length; i++) { var ascii = string.charCodeAt(i); if (ascii < 48 || ascii > 57) { return false; } } return true; }
在上面的語法中,我們為每個字串字元執行 charCodeAt() 方法。
步驟 1 - 使用 for 迴圈迭代字串。
步驟 2 - 使用 charCodeAt() 方法取得字元的 ASCII 值,該字元位於字串中的第 i 個索引處
步驟 3 - 檢查索引 ith 處的字元的 ASCII 值是否在 48 到 57 之間。如果不是,則表示它是非數字字元並傳回 false。
步驟 4 - 如果 for 迴圈的迭代完成,且函數沒有找到任何非數字字符,則傳回 true,表示字串僅包含數字。
在下面的範例中,我們採用兩個僅包含數字和混合字元的字串。使用者可以觀察輸出結果,它根據只包含數字或非數字的字串在網頁上列印訊息。
<html> <body> <h3>Using the <i> for-loop and charCodeAt() </i> method to check if string contains only digits</h2> <div id = "output"> </div> <script> let output = document.getElementById("output"); function isOnlyDigits(string) { for (let i = 0; i < string.length; i++) { var ascii = string.charCodeAt(i); if (ascii < 48 || ascii > 57) { output.innerHTML += "The " + string + " contains non-digits characters also. <br/>"; return false; } } output.innerHTML += "The " + string + " contains only digits characters also. <br/>"; return true; } isOnlyDigits("122135567343"); isOnlyDigits("df32d23"); </script> </body> </html>
在 JavaScript 中,Number 是一個對象,我們可以使用它的建構子來建立它的實例。我們可以傳遞一個值作為 Number() 建構函數的參數,以用數字值初始化變數。
我們也可以將數字字串當作 Number() 建構子的參數傳遞。它解析數字並傳回數字值。如果我們傳遞包含非數字字元的字串,它將傳回 NaN 值。
使用者可以使用下面的語法來使用 Numberconstructor()來檢查字串是否僅包含數字。
let num = Number(string1); if (num != NaN) { // contains non-digit numbers }else{ // contains only digits. }
在上面的語法中,string1是一個包含數字和非數字字元的字串。如果 Number() 建構函數傳回 NaN,則字串包含非數字字元;否則,它會傳回數值。
在下面的範例中,string1 僅包含數字。我們將它作為 Number() 建構函數的參數傳遞,使用者可以看到它在輸出中傳回實際的數值而不是 NaN。
<html> <body> <h3>Using the <i> Number() constructor </i> method to check if string contains only digits</h2> <div id="output"></div> <script> let output = document.getElementById("output"); let string1 = "3433454646"; let num = Number(string1); if (num != NaN) { output.innerHTML += "The " + string1 + " Contains only digits! <br/>"; } else { output.innerHTML += "The " + string1 + " Contains non-digits characters! <br/>"; } </script> </body> </html>
在本節中,我們將建立一個正規表示式,可用來將非數字字元比對到字串中。如果我們找到非數字字元的任何單一匹配,我們可以說該字串也包含非數字字元。
使用者可以按照下面的語法使用正規表示式來檢查字串是否只包含數字。
let regex = /\D/; let bool = regex.test(str); if (bool) { // contains non-digits } else { // contains only digits }
上面的語法中使用了 test() 方法來將正規表示式模式與字串進行比對。
如果字串包含任何非數字字符,test() 方法將傳回 true。
\D - 用於匹配任何單一非數字字元。
我們也可以將「g」標誌與正規表示式一起使用來匹配所有出現的非數字字符,但我們足以知道字串僅包含一個非數字字符。
在此範例中,當使用者按一下按鈕時,isContainsDigits() 函數具有不同的字串參數。此外,使用者可以使用不同的字串觀察 test() 方法的輸出。
<html> <body> <h3>Using the <i> regular expression </i> method to check if string contains only digits </h3> <div id = "output"> </div> <button onclick="isContainsDigits('8954656');isContainsDigits('dfjsdh4354354')"> Click here </button> <script> let output = document.getElementById("output"); let regex = /\D/; function isContainsDigits(str) { let bool = regex.test(str); if (bool) { output.innerHTML += "The " + str + " Contains non-digits! <br/>"; } else { output.innerHTML += "The " + str + " Contains only digits characters! <br/>"; } } </script> </body> </html>
我們學習了三種不同的方法來檢查字串是否僅包含數字。使用者可以使用 Number() 建構函數透過一個線性程式碼來執行任務。
以上是JavaScript 如何檢查字串是否只包含數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!