Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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_Validation_Onkeydown - Fatal编程技术网

Javascript 在react中输入至少包含一个字符和一个数字的文本验证

Javascript 在react中输入至少包含一个字符和一个数字的文本验证,javascript,reactjs,validation,onkeydown,Javascript,Reactjs,Validation,Onkeydown,我想在用户输入值onKeyDown事件时在输入字段中添加验证。验证是,我的输入必须至少包含一个字符和一个数字。验证为真时,必须启用或禁用验证文本。此外,如果用户退格且文本不包含至少一个值或一个数字,则必须启用验证。我已经用两个标志设置了内部状态。我的问题是我的验证函数必须是什么? 代码: 请检查以下链接 其代码如下: class Hello extends React.Component { state = {hasError:false}; onChange(event){

我想在用户输入值onKeyDown事件时在输入字段中添加验证。验证是,我的输入必须至少包含一个字符和一个数字。验证为真时,必须启用或禁用验证文本。此外,如果用户退格且文本不包含至少一个值或一个数字,则必须启用验证。我已经用两个标志设置了内部状态。我的问题是我的验证函数必须是什么? 代码:


请检查以下链接

其代码如下:

class Hello extends React.Component {
    state = {hasError:false};

    onChange(event){
    if(event.target.value.match(/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/)){
        this.setState({hasError:false});
    }else{
        this.setState({hasError:true});
    }
  }

  render() {
    return <div>
      <input name="name" onChange={this.onChange.bind(this)}/>
      {this.state.hasError && <span>Error</span>}
    </div>;
  }
}

ReactDOM.render(
  <Hello name="World" />,
  document.getElementById('container')
);
这与您在react应用程序中期望的一样有效。

顺便说一句

1.你可以更换

<input
  {...props.input}
  type={props.type}
  className="form-control input-box__input"
  placeholder={props.placeholder}
  value={props.value}
  defaultValue={props.defaultValue}
  defaultChecked={props.defaultChecked}
  disabled={props.disabled}
  onChange={props.onChange}
  onKeyDown={this.onKeyDown}
  checked={props.checked}
/>

但要使用它,输入必须在内部

添加代码、引用、示例和输出。如果你帮不了我们,我们也帮不了你。请参阅:使用我的代码检查我的更新问题可能重复在用户动态键入文本时如何在我的函数中添加此模式
<input
  {...props.input}
  type={props.type}
  className="form-control input-box__input"
  placeholder={props.placeholder}
  value={props.value}
  defaultValue={props.defaultValue}
  defaultChecked={props.defaultChecked}
  disabled={props.disabled}
  onChange={props.onChange}
  onKeyDown={this.onKeyDown}
  checked={props.checked}
/>
<input
  {...props.input}
  {...props}
  className="form-control input-box__input"
  onKeyDown={this.onKeyDown}
/>
<input
 {...props.input}
 {...props}
 {...this}
/>
className = 'form-control input-box__input';
onChange = (e) => {
 e.target.checkValidity();
 if (this.props.onChange) this.props.onChange()
}