Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react中只接受电话号码_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 如何在react中只接受电话号码

Javascript 如何在react中只接受电话号码,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我认为这可能是个愚蠢的问题,但相信我,我是个新手。我正在使用在这里我正在实现数字目标(我的意思是它只接受数字),但我想设置一些限制,这意味着用户不能输入超过8个字符。我只接受数字和限制8。请帮我一下好吗?只需添加图案和maxlength属性即可。 假设您使用的是受控输入,那么您可以这样做 我们将使用只允许数字的正则表达式。如果你不在乎支持IE,你可以跳过这一步,只依靠type=“number” 然后我们将使用起始位置0和结束位置8,因为您希望限制为8位。如果你需要的不是8,只需更改这个数字 类

我认为这可能是个愚蠢的问题,但相信我,我是个新手。我正在使用
在这里我正在实现数字目标(我的意思是它只接受数字),但我想设置一些限制,这意味着用户不能输入超过8个字符。我只接受数字和限制8。请帮我一下好吗?

只需添加图案和maxlength属性即可。
假设您使用的是受控输入,那么您可以这样做

我们将使用只允许数字的正则表达式。如果你不在乎支持IE,你可以跳过这一步,只依靠
type=“number”

然后我们将使用起始位置0和结束位置8,因为您希望限制为8位。如果你需要的不是8,只需更改这个数字

类示例扩展了React.Component{
状态={
值:“”
}
onChange=e=>{
//为清晰起见,分为3个步骤
让onlyNumbers=e.target.value.replace(/[^\d]/g',);
设limitToEight=onlyNumbers.slice(0,8);
this.setState({value:limitToEight});
//一行:
//this.setState({value:e.target.value.replace(/[^\d]/g',).slice(0,8)})
}
render(){
返回
}
}
ReactDOM.render(,document.getElementById('root'))

如果字符长度小于限制设置状态,则检查字符长度;如果大于限制设置状态,则检查字符长度

handleInput = e => {
  e.persist();

  this.setState(prevState => {
    return {
      input: e.target.value.length < 9 ? e.target.value : prevState.input
    };
  });
};


模式=^\d{7,8}$
您尝试了什么?问之前你做过调查吗?如果是的话,你发现了什么?@Brianthonpson是的,我已经找到了。事实上,我想把电话号码,它将只接受号码,而不是其他字符,而且我想字符限制意味着我想让用户只输入8characters@dandavis它也接受字母值。我只想要数值是的,我明白。但它是受控输入还是非受控输入。您是否将其值存储在状态中,并使用
onChange
处理程序对其进行更新?您已将其标记为react,但尚未给出任何react代码。最后,这需要更多的细节。它也接受字母值。我只想要数字值和限制。它给我错误,请更新您的答案react@Jonas你能更具体地说明你遇到的错误吗?@Gabriel我试过了,但在keypress={e=>{let{value}=e.target;如果(value.length<8){return value;}}}}如何限制字符?我只接受8个字符。您运行代码段的ID吗?它限制为8。
.slice(0,8)