如何在 ReactJS 中驗證八進位制數?


存在各種型別的數字表示方式,例如十進位制、十六進位制、二進位制、八進位制等。八進位制數是以 8 為基數的數值,它只接受 0 到 7 之間的數字。

在這裡,我們將學習如何驗證八進位制數。我們需要檢查八進位制數字符串的所有字元是否都是數字,並且在 0 到 7 之間。

使用正則表示式在 ReactJS 中驗證八進位制數

驗證八進位制數的最佳方法是使用正則表示式。我們可以使用正則表示式的 test() 方法來確保數字字串是一個有效的八進位制數。

語法

使用者可以按照以下語法使用正則表示式在 ReactJS 中驗證八進位制數。

let octalRegex = /^(0o)?[0-7]+$/i;
let isValid = octalRegex.test(octal) 

在上述語法中,我們將八進位制數作為 test() 方法的引數傳遞以進行驗證。

正則表示式解釋

  • ^(0o)? − 八進位制數開頭可以包含 (0o),表示該字串是一個八進位制數。

  • [0-7]+ − 八進位制數可以包含一個或多個 0 到 7 之間的數字。

  • $ − 表示字串的結尾。

  • i − 用於對“o”進行不區分大小寫的匹配。

示例

在下面的示例中,我們使用“number”型別的 HTML 輸入來獲取八進位制數的輸入。每當使用者輸入八進位制數的新值時,我們都會執行 handleNumberChange() 函式。

在 handleNumberChange() 函式中,我們使用了上述正則表示式和 test() 方法來驗證八進位制數。在輸出中,使用者可以輸入任何包含數字 8 或 9 的數字,並觀察輸出顯示八進位制數無效。

import React, { useState } from "react";
function App() {
   let [number, setNumber] = useState("");
   let [message, setMessage] = useState("");
   function handleNumberChange(event) {
      let currentNumber = event.target.value;
      setNumber(currentNumber);
      let octalRegex = /^(0o)?[0-7]+$/i;
      if (octalRegex.test(currentNumber)) {
         setMessage("is Valid Octal Number");
      } else {
         setMessage("is Invalid Octal Number");
      }
   }
   return (
      <div>
         <h3>
            {" "}
            Using the <i> Regular expression </i> to validate octal number in ReactJS{" "}
         </h3>
         <input type = "number" value = {number} onChange = {handleNumberChange} />
         <p> 
            {" "}
            {number} {message}
         </p>
      </div>
   );
}
export default App;

輸出

輸入有效的八進位制數時 -

輸入無效的八進位制數時 -

使用 validator NPM 包在 ReactJS 中驗證八進位制數

在這裡,我們將使用 validator 庫的 isOctal() 方法來驗證八進位制數。

語法

使用者可以按照以下語法使用 validator NPM 包的 isOctal() 方法來驗證八進位制數字符串。

validator.isOctal(num) 

引數

  • num – 要驗證的八進位制數字符串。

示例

在下面的示例中,每當使用者更改八進位制數的值時,我們都會呼叫 handleNumberChange() 函式,該函式使用 isOctal() 方法來驗證八進位制數。該函式會根據八進位制數是否有效顯示有效或無效的訊息。

import React, { useState } from "react";
import validator from "validator";
function App() {
   let [number, setNumber] = useState("");
   let [message, setMessage] = useState("");
   function handleNumberChange(event) {
      let currentNumber = event.target.value;
      setNumber(currentNumber);
      if (validator.isOctal(currentNumber)) {
         setMessage("is Valid Octal Number");
      } else {
         setMessage("is Invalid Octal Number");
      }
   }
   return (
      <div>
         <h3>
            {" "} 
            Using the <i> Validator NPM package </i> to validate octal numbers in ReactJS{" "}
         </h3>
         <input type = "text" value = {number} onChange = {handleNumberChange} />
         <p>
            {" "}
            {number} {message}
         </p>
      </div>
   );
}
export default App; 

輸出

使用自定義演算法在 ReactJS 中驗證八進位制數

我們可以檢查數字的每一位,如果我們發現任何一位大於 7,我們可以說該數字不是有效的八進位制數。

語法

使用者可以按照以下語法使用自定義演算法驗證八進位制數。

for (let i = 0; i < currentNumber.length; i++) {
   if (currentNumber[i] > 7) {
      } else { 
   }
}

在上述語法中,我們使用了 for 迴圈來檢查每個數字位。在 for 迴圈中,我們使用了 if 語句來確保數字是一個有效的八進位制數。

示例

在下面的示例中,我們在 handleNumberChange() 函式中檢查是否有任何數字大於七。如果是,我們設定一個訊息,例如“不是有效的八進位制數”。否則,我們設定一個訊息,例如“是有效的八進位制數”。

import React, { useState } from "react";
function App() {
   let [number, setNumber] = useState("");
   let [message, setMessage] = useState("");
   function handleNumberChange(event) {
      let currentNumber = event.target.value;
      setNumber(currentNumber);
      
      // custom code to validate the octal number
      for (let i = 0; i < currentNumber.length; i++) {
         if (currentNumber[i] > 7) {
            setMessage(" is not a valid octal number");
            return;
         } else {
            setMessage(" is a valid octal number");
         }
      }
   }
   return (
      <div>
         <h3>
            {" "}
            Using the <i> custom algorithm </i> to validate octal number in ReactJS.{" "}
         </h3>
         <input type = "number" value = {number} onChange = {handleNumberChange} />
         <p>
            {" "}
            {number} {message}
         </p>
      </div>
   );
}
export default App;

輸出

在本教程中,使用者學習了使用各種方法驗證八進位制數。我們在第一種方法中使用了正則表示式,在第二種方法中使用了 validator NPM 包。此外,我們在第三種方法中建立了自定義演算法來驗證八進位制數。

更新於:2023年3月6日

481 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.