我在api上创建帐户,密码需要这些限制。handleRegist()连接到api,但我使用的密码总是经过if周期。我正在使用一个功能来检查登录密码的强度密码必须包含至少1个特殊字符1大写字母,它必须长于8个字符。到目前为止,我有以下代码:
function passwordChecker(password){
var strongPassword = /^(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*s).{8,15}$/;
if (password.value.match(strongPassword)) {
console.log("Good Password");
handleRegist();
}else
console.log("Try Again!nnot strong enough");
}
注意:strongPassword变量我在互联网上找到了它,我不确定限制是否像那样工作。
为了能够触发函数,你需要从某处调用它,自然,你会想在输入组件的onchange事件中调用它。
<input
type="text"
onChange={(e) => passwordChecker({ value: e.target.value })}
/>
下面是一个工作的codesandbox示例:工作示例(从页面底部打开控制台,在输入框内输入时查看结果)
注意:我在一个对象{value: e.target.value}
中传递值,我这样做是因为在你的函数中你正在检查password.value.match(strongPassword)
,它期望得到password.value
,因此我需要在一个对象中添加值并将其传递给函数。
我建议处理该值并将其存储在useState的状态中,并将状态作为值传递给输入。