我想检查文本输入类型的值是数字还是字符串,如下所示:
<input type="text" onChange={(e) => { const value = e.target.value; console.log(typeof value); }} />
但当我键入文本或数字时,控制台会在这两种情况下记录字符串。如何检查react js中的值是否为数字,输入类型为文本?
dxxyhpgq1#
最简单的方法是将字符串转换为数字,然后检查它是否有效。因为即使使用type="number",输入的值也总是string,尽管如果你只需要数字作为输入,使用type="number"是很好的。你可以使用isNaN(+value)。这里+会将字符串转换成数字。
type="number"
string
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
kx1ctssn2#
你可以投到号码上,然后看看是不是南
isNaN(parseInt('0')) // false isNaN(parseInt('f')) // true
如注解中所述,parseInt()将为包含数字的字符串返回一个数字。
isNaN(Number('55')) // false isNaN(Number('55bob')) // true
2条答案
按热度按时间dxxyhpgq1#
最简单的方法是将字符串转换为数字,然后检查它是否有效。因为即使使用
type="number"
,输入的值也总是string
,尽管如果你只需要数字作为输入,使用type="number"
是很好的。你可以使用
isNaN(+value)
。这里+
会将字符串转换成数字。部分测试用例:
**注意:**如前所述,这是一种简单的方法,可以有一些变通方法来绕过它,要获得可靠的解决方案,您可以在此处查看:Check whether variable is number or string in JavaScript
kx1ctssn2#
你可以投到号码上,然后看看是不是南
如注解中所述,parseInt()将为包含数字的字符串返回一个数字。