javascript - 如何检查输入的值是 react js中的数字还是字符串?

标签 javascript reactjs validation input

我想检查输入文本类型的值是数字还是字符串,如下所示:

<input
  type="text"
  onChange={(e) => {
  const value = e.target.value;
    console.log(typeof value);
  }}
/>

但是当我输入文本或数字时,它在两种情况下都会在控制台记录字符串。

如何在 React js 中检查值是否为带有输入类型文本的数字?

最佳答案

最简单的方法是将字符串转换为数字,然后检查它是否有效。因为输入的值始终是 string,即使您使用 type="number",但如果您只想将数字作为输入,最好使用它。

您可以使用 isNaN(+value)。这里 + 会将字符串转换为数字。

<input
  type="text"
  onChange={(e) => {
    const value = e.target.value;
    console.log(!isNaN(+value)); // true if its a number, false if not
  }}
/>


部分测试用例:

console.log(!isNaN(+"54"));
console.log(!isNaN(+"23xede"));
console.log(!isNaN(+"test"));

Note: As mentioned this is a simple way, there can be workarounds to bypass this, for a robust solution you can have a look here: Check whether variable is number or string in JavaScript

关于javascript - 如何检查输入的值是 react js中的数字还是字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68007900/

相关文章:

javascript - AngularJS文件输入onchange事件到controllerAs

javascript - 在 React 中输入范围内的数字

javascript - 为什么我们在 React 中需要 redux

python - Django 验证列组合是否存在( bool 字段唯一)

javascript - 使用位掩码确定是否设置了 2 个或更多 bool 值

javascript - React-router v2.0 browserHistory 不工作

javascript - 从 'namespace' 字符串构建对象层次结构

javascript - 为什么组件退出时 CSSTransition 没有动画?

java - 如何以编程方式根据架构验证 JSON 字符串?

asp.net - 验证失败后如何防止页面跳转到顶部位置?