运用js语言使用正则表达式进行表单验证:对一个注册页面进行表单验证,包括:用户名、密码、确认密码、手机号等。
时间: 2023-12-22 15:04:59 浏览: 41
好的,那我来给你详细讲解一下如何使用 JavaScript 正则表达式进行表单验证。
首先,我们需要在 HTML 页面中定义表单,例如:
```html
<form>
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<br>
<label for="confirm-password">确认密码:</label>
<input type="password" id="confirm-password" name="confirm-password" required>
<br>
<label for="phone">手机号:</label>
<input type="tel" id="phone" name="phone" required>
<br>
<button type="submit">提交</button>
</form>
```
然后,在 JavaScript 中编写表单验证的逻辑。我们可以为表单元素添加一个 submit 事件监听器,在表单提交时进行验证。
```javascript
// 获取表单元素
const form = document.querySelector('form');
// 获取各个输入框元素
const usernameInput = form.querySelector('#username');
const passwordInput = form.querySelector('#password');
const confirmPasswordInput = form.querySelector('#confirm-password');
const phoneInput = form.querySelector('#phone');
// 定义正则表达式
const usernameRegex = /^[a-zA-Z0-9_-]{4,16}$/; // 用户名必须由 4 到 16 位字母、数字、下划线或减号组成
const passwordRegex = /^[a-zA-Z0-9_-]{6,18}$/; // 密码必须由 6 到 18 位字母、数字、下划线或减号组成
const phoneRegex = /^1[3456789]\d{9}$/; // 手机号必须以 1 开头,后面跟着 10 位数字
// 表单提交时进行验证
form.addEventListener('submit', (event) => {
// 阻止表单的默认提交行为
event.preventDefault();
// 验证用户名
if (!usernameRegex.test(usernameInput.value)) {
alert('用户名格式不正确');
return;
}
// 验证密码
if (!passwordRegex.test(passwordInput.value)) {
alert('密码格式不正确');
return;
}
// 验证确认密码
if (passwordInput.value !== confirmPasswordInput.value) {
alert('两次输入的密码不一致');
return;
}
// 验证手机号
if (!phoneRegex.test(phoneInput.value)) {
alert('手机号格式不正确');
return;
}
// 如果所有验证都通过,就可以提交表单了
alert('表单提交成功!');
form.submit();
});
```
在上面的代码中,我们首先获取了表单元素和各个输入框的引用。然后定义了用户名、密码、手机号的正则表达式。最后在表单提交时,依次对各个输入框的值进行正则验证,如果验证不通过就弹出提示,并阻止表单的提交。如果所有验证都通过,就可以提交表单了。
需要注意的是,上面的代码只是一个简单的示例,实际应用中可能需要更复杂的验证逻辑,例如异步验证、密码强度检测等。但是基本思路是相同的,即获取表单元素、定义正则表达式、在表单提交时进行验证。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)