无法使用引导程序验证 React 中的数字



我正在尝试验证使用 React 渲染的 HTML 输入字段只接受数字。我目前的尝试就是这样做的。

必须执行哪些操作才能验证输入字段是否仅接受数字?

phone: {
elementLabel: 'Phone Number',
elementType: 'input',
elementConfig: {
type: "number",
placeholder: 'Phone Number',
name: "phone",
id: "phone",
min: "0",
pattern: "[0-9]*",
},
value: '',
form_value: "",
validation: {},
valid: false,
touched: false,
className: "form-control",
changed: (event) => this.inputChangedHandler(event,
"phone"),
blured: (event) => this.inputBlurHandler(event,
"phone")
},
render(){
<div>
<Input {...this.state.name}/>
</div>
}
inputChangedHandler = (event, inputIdentifier) => {
const updatedForm = {
...this.state
};
const updatedFormElement = {
...this.state[inputIdentifier]
};
Utils.updateElementValue(updatedFormElement, event, inputIdentifier);
updatedFormElement.touched = true;
updatedForm[inputIdentifier] = updatedFormElement;
let formIsValid = true;
for (let inputIdentifier in updatedForm) {
if (updatedForm[inputIdentifier].elementType) {
formIsValid = updatedForm[inputIdentifier].valid && formIsValid;
}
}
this.setState({ [inputIdentifier]: updatedFormElement, formIsValid: formIsValid });
}

这也是我的更改处理程序看起来像 从控件获取输入时不验证数字。在使用它时,我希望验证只输入数字,甚至没有任何特殊字符。

编辑 1:

我使用以下版本:

  • 引导: ^4.3.1
  • 反应: ^16.8.6

我认为您使用的模式是错误的。它应该是^[0-9]*$接受任意数量的数字,包括无。

最新更新