如何在 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 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告