我正在做一个简单的用户注册页面只有3个字段,电子邮件,密码和重复密码。
我有一些接受密码的条件,例如它不应该包含以下字母:“e”“k”“n”“m”,它应该在6到11个字母之间,而且还有更多的验证,比如第一个字母需要是国会大厦的字母,其余的小写字母。
到目前为止,我已经用电子邮件和密码做了一个简单的react应用程序,一些验证可以工作例如长度,但我不知道如何添加其他验证,如果我知道,我认为我需要使用ASCII转换字母到数字,以便我可以做比较。
validateField(fieldName, value) {
let fieldValidationErrors = this.state.formErrors;
let emailValid = this.state.emailValid;
let passwordValid = this.state.passwordValid;
switch(fieldName) {
case 'email':
emailValid = value.match(/^([\w.%+-]+)@([\w-]+\.)+([\w]{2,})$/i);
fieldValidationErrors.email = emailValid ? '' : ' is invalid';
break;
case 'password':
passwordValid = value.length >= 6 && value.length <= 11;
fieldValidationErrors.password = passwordValid ? '': ' is not valid';
break;
default:
break;
}
this.setState({formErrors: fieldValidationErrors,
emailValid: emailValid,
passwordValid: passwordValid
}, this.validateForm);
}