用html 针对一个简单的用户注册要求进行验证,界面如下图。 1.必填项验证:用户名、密码、重复密码、邮箱是必填项。 2.有效性验证:用户名不能以数字字符开始,只能以字母开 始,且长度大于等于6个字符,小于等于20个字符;密 码和重复密码不能和用户名相同,且长度大于等于6个 字符,小于等于 20 个字符,必须有大小写字母、数字 特殊字符组合[@#];. 3.邮箱地址符合电子邮件地址的基本语法。. 3.语义验证:密码和重复密码
时间: 2024-03-16 22:46:16 浏览: 16
请注意,您刚刚提供的问题与之前的问题非常相似,但有一个小变化。为了回答您的问题,我将再次提供 HTML 代码和 JavaScript 代码,这次没有 CSS 样式。
HTML 代码:
```html
<form>
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required minlength="6" maxlength="20" pattern="^[a-zA-Z][a-zA-Z0-9]{5,19}$">
<label for="password">密码:</label>
<input type="password" id="password" name="password" required minlength="6" maxlength="20" pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#])[A-Za-z\d@#]{6,20}$">
<label for="confirm_password">重复密码:</label>
<input type="password" id="confirm_password" name="confirm_password" required minlength="6" maxlength="20" pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#])[A-Za-z\d@#]{6,20}$" onchange="checkPasswordMatch();">
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required>
<div id="divCheckPasswordMatch"></div>
<input type="submit" value="注册">
</form>
```
JavaScript 代码:
```javascript
function checkPasswordMatch() {
var password = document.getElementById("password");
var confirm_password = document.getElementById("confirm_password");
var divCheckPasswordMatch = document.getElementById("divCheckPasswordMatch");
if (password.value != confirm_password.value) {
divCheckPasswordMatch.innerHTML = "密码不一致!";
divCheckPasswordMatch.classList.remove("match");
divCheckPasswordMatch.classList.add("no-match");
} else {
divCheckPasswordMatch.innerHTML = "密码一致!";
divCheckPasswordMatch.classList.remove("no-match");
divCheckPasswordMatch.classList.add("match");
}
}
document.getElementById("username").addEventListener("input", function() {
var pattern = /^[a-zA-Z][a-zA-Z0-9]{5,19}$/;
var username = document.getElementById("username");
if (!pattern.test(username.value)) {
username.setCustomValidity("用户名必须以字母开头,只能包含字母和数字,长度在6-20之间!");
} else {
username.setCustomValidity("");
}
});
document.getElementById("password").addEventListener("input", function() {
var pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#])[A-Za-z\d@#]{6,20}$/;
var password = document.getElementById("password");
var username = document.getElementById("username");
if (!pattern.test(password.value) || password.value === username.value) {
password.setCustomValidity("密码必须包含大小写字母、数字和特殊字符[@#],长度在6-20之间,不能和用户名相同!");
} else {
password.setCustomValidity("");
}
});
document.getElementById("confirm_password").addEventListener("input", function() {
checkPasswordMatch();
});
document.getElementById("email").addEventListener("input", function() {
var email = document.getElementById("email");
if (!email.checkValidity()) {
email.setCustomValidity("请输入有效的邮箱地址!");
} else {
email.setCustomValidity("");
}
});
```
其中,`required` 属性用于必填项验证,`minlength` 和 `maxlength` 属性用于长度验证,`pattern` 属性用于有效性验证,`onchange` 属性用于实时验证密码和重复密码是否一致。JavaScript 代码则用于实现语义验证和实时验证。