写一段正则判断式验证账号密码
时间: 2023-07-28 14:26:06 浏览: 64
以下是一个使用正则表达式判断账号密码是否符合要求的例子,其中账号和密码分别要求:
- 账号:4-16位字母、数字或下划线
- 密码:8-16位,至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符
```javascript
function validateAccount(account) {
const regex = /^[a-zA-Z0-9_]{4,16}$/;
return regex.test(account);
}
function validatePassword(password) {
const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,16}$/;
return regex.test(password);
}
```
我们可以在注册或登录页面中使用这些验证函数,例如:
```javascript
const accountInput = document.getElementById('account');
const passwordInput = document.getElementById('password');
const form = document.getElementById('form');
form.addEventListener('submit', function(e) {
e.preventDefault();
const account = accountInput.value;
const password = passwordInput.value;
if (!validateAccount(account)) {
accountInput.setCustomValidity('账号必须由4-16位字母、数字或下划线组成');
return;
}
if (!validatePassword(password)) {
passwordInput.setCustomValidity('密码必须由8-16位字符组成,包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符');
return;
}
// 提交表单
form.submit();
});
```
在这个例子中,我们为表单添加了一个 submit 事件监听器,在表单提交之前对账号和密码进行验证。如果验证不通过,我们使用 setCustomValidity 方法设置一个自定义验证消息,以便在提交表单时显示给用户。如果验证通过,则提交表单。