首页 > 解决方案 > 不显示字母数字正则表达式格式的密码验证消息

问题描述

即使我在密码字段中仅提供字母或数字,也不会触发密码验证消息。我的意图是,如果密码不是alphanumeric格式,密码字段应该触发验证消息。我在用react-hook-form

<label>
<input className="inputRequest formContentElement" name="password" type="password" placeholder="Password"
                onChange={onChange}
                minLength={6}
                ref={register({
                  required: "Required",
                  pattern: {
                    value: /^([a-zA-Z0-9]+)$/,
                    message: "Password should include letter and numbers !"
                  }
                })}
 />
<span className="registerErrorTextFormat">{errors.password && errors.password.message}</span>
</label>

标签: regexreactjspasswordsreact-hooksreact-hook-form

解决方案


您的 reg 表达式允许数字或字母,而不是至少一个。将其更改为 -

/^(?=.*?\d)(?=.*?[a-zA-Z])[a-zA-Z\d]+$/

首先(?=.*?\d)是至少一个digit,第二个(?=.*?[a-zA-Z])是至少一个a-zA-Z(大写与否),最后[a-zA-Z\d]+是你写的那些类型


推荐阅读