那为什么当我输入:"1132312123123#1e4" ,显示是红色的?
时间: 2023-07-19 18:52:32 浏览: 74
当你输入 "1132312123123#1e4" 时,密码输入框的值为 "1132312123123#1e4",它的长度是 16,不满足正则表达式的要求,因此密码输入框会被添加 `invalid` 类,显示为红色。
正则表达式要求密码长度必须大于等于 9,因此你需要输入一个长度大于等于 9 的密码才能让密码输入框显示为绿色。例如,你可以尝试输入 "123abc#456",这个密码符合正则表达式的要求,密码输入框会被添加 `valid` 类,显示为绿色。
如果你想要修改正则表达式的要求,可以根据自己的需求来修改。例如,你可以将正则表达式中的 `{9}` 修改为 `{8,}`,表示密码长度必须大于等于 8。
相关问题
调试跟踪后发现 输入 "1132312123123#1e4" 后,进入了else
根据你的描述,输入 "1132312123123#1e4" 后,密码输入框显示为红色,应该是正则表达式的问题导致的。
你可以在代码中添加一些调试信息来帮助你找到问题所在。例如,你可以使用 `console.log()` 函数来输出一些调试信息,例如当前密码输入框的值、正则表达式的匹配结果等等,以便你更好地理解代码的执行过程。
以下是一个示例代码,它会在控制台输出一些调试信息:
```javascript
$(document).ready(function() {
$('#pwd, #pwd1').on('keydown keyup', function() {
var password = $(this).val();
var regex = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[@#$%^&+=]).{9}$/;
console.log('password:', password);
console.log('regex:', regex);
if (regex.test(password)) {
$(this).removeClass('invalid');
$(this).addClass('valid');
console.log('valid');
} else {
$(this).removeClass('valid');
$(this).addClass('invalid');
console.log('invalid');
}
});
});
```
在上面的代码中,我们在事件处理函数中添加了几个 `console.log()` 函数,用来输出当前密码输入框的值、正则表达式的匹配结果、以及验证结果。当你输入 "1132312123123#1e4" 后,你可以在浏览器的控制台中查看这些信息,以便更好地理解代码的执行过程。