如何在ReactJS的文本框中仅允许数字?
如何只允许在数字textbox
中reactjs
使用regular expression
而已?
回答:
使用受控组件(使用值和输入字段的onChange属性),并在onChange句柄内部检查输入的值是否为正确的数字。仅当输入的值是有效数字时才更新状态。
为此使用此 :/^[0-9\b]+$/;
onChange处理程序将为:
onChange(e){ const re = /^[0-9\b]+$/;
// if value is not blank, then test the regex
if (e.target.value === '' || re.test(e.target.value)) {
this.setState({value: e.target.value})
}
}
工作示例:
class App extends React.Component{ constructor(){
super();
this.state = {value: ''};
this.onChange = this.onChange.bind(this)
}
onChange(e){
const re = /^[0-9\b]+$/;
if (e.target.value === '' || re.test(e.target.value)) {
this.setState({value: e.target.value})
}
}
render(){
return <input value={this.state.value} onChange={this.onChange}/>
}
}
ReactDOM.render(<App/>,document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id='app'/>
以上是 如何在ReactJS的文本框中仅允许数字? 的全部内容, 来源链接: utcz.com/qa/422464.html