我不能设法把我的javascript函数工作



我在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的状态中,并将状态作为值传递给输入。

相关内容

  • 没有找到相关文章

最新更新