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

a64a0gku  于 2022-12-03  发布在  React
关注(0)|答案(2)|浏览(381)

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

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

但当我键入文本或数字时,控制台会在这两种情况下记录字符串。
如何检查react js中的值是否为数字,输入类型为文本?

dxxyhpgq

dxxyhpgq1#

最简单的方法是将字符串转换为数字,然后检查它是否有效。因为即使使用type="number",输入的值也总是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"));

**注意:**如前所述,这是一种简单的方法,可以有一些变通方法来绕过它,要获得可靠的解决方案,您可以在此处查看:Check whether variable is number or string in JavaScript

kx1ctssn

kx1ctssn2#

你可以投到号码上,然后看看是不是南

isNaN(parseInt('0')) // false
isNaN(parseInt('f')) // true

如注解中所述,parseInt()将为包含数字的字符串返回一个数字。

isNaN(Number('55')) // false
isNaN(Number('55bob')) // true

相关问题