使用JS对注册表单进行数据校验,要求:(1)用户名不能为空;(2)密码为8~16位;(3)用户名由大小写字母和数字组成,不能以数字开头;(4)密码必须包含大小写字母、数字和符号;(5)两次密码相同;(6)成绩范围0~100;(7)手机号码是11位的数字;(8)电子邮箱格式正确。
时间: 2024-10-10 09:10:41 浏览: 34
在JavaScript中,你可以使用正则表达式以及条件判断来实现注册表单的数据校验。下面是一个简单的例子:
```javascript
function validateForm(formData) {
var username = formData.username;
var password = formData.password;
var confirmPassword = formData.confirmPassword;
var score = formData.score;
var phoneNumber = formData.phoneNumber;
var email = formData.email;
// 数据验证规则
const regexRules = {
username: /^[a-zA-Z][a-zA-Z0-9]*$/,
password: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z!@#$%^&*]{8,16}$,
confirmPassword: function() {
return password === confirmPassword;
},
score: /^0|[1-9]\d?|100$/,
phoneNumber: /^\d{11}$,
email: /^[^\s@]+@[^\s@]+\.[^\s@]+$/
};
// 检查每个字段是否满足规则
if (!regexRules.username.test(username)) {
return "用户名不能为空,且只能包含字母和数字,不能以数字开头";
}
if (!regexRules.password.test(password)) {
return "密码长度应在8到16位之间,并需包含大小写字母、数字和特殊字符";
}
if (password.length < 8 || password.length > 16) {
return "密码长度不符合要求";
}
if (!regexRules.confirmPassword()) {
return "两次输入的密码不一致";
}
if (isNaN(score) || score < 0 || score > 100) {
return "成绩范围应为0到100";
}
if (!regexRules.phoneNumber.test(phoneNumber)) {
return "手机号码应为11位数字";
}
if (!regexRules.email.test(email)) {
return "请输入有效的电子邮件地址";
}
// 如果所有验证都通过,则返回true
return true;
}
// 示例用法
let validationErrors = validateForm({
username: "testUser1",
password: "TestPass1!",
confirmPassword: "TestPass1!",
score: 99,
phoneNumber: "12345678901",
email: "user@example.com"
});
if (validationErrors) {
console.log(validationErrors);
} else {
console.log("表单提交成功");
}
```
阅读全文