繁体   English   中英

仅在带有钩子的 React.js 上键入文本输入的数字

[英]Only numbers on type text input on React.js with hooks

输入输入时,我试图避免使用任何类型的字符串。 我在这里找到了一个关于堆栈溢出的代码,它有效。 但是,它仅在先输入数字或输入字母并全部删除时才有效; 输入第一个字母时它不起作用。 而且我不太了解代码。 我什至不知道 /^[0-9\b]+$/ 是什么

这是代码

   const [value, setValue] = useState();

    const handleChange = (e) => {
        const re = /^[0-9\b]+$/;
        if (e.target.value === "" || re.test(e.target.value)) {
            setValue(e.target.value);
        }
    };

如何测试转换为 Number 是否返回 NaN? 试试下面的代码:

 const [value, setValue] = useState();

 const handleChange = (e) => {
    if (!isNaN(Number(e.target.value))) {
        setValue(e.target.value);
    }
 };

而且,顺便说一句,正如原始问题下方评论中的人正确指出的那样,这: /^[0-9\b]+$/确实是正则表达式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM