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)