JavaScript 使用正则表达式进行表单验证的示例代码

yizhihongxing

表单验证是 web 开发中非常常见的需求。在 JavaScript 中使用正则表达式可以快速地进行表单验证。下面是使用正则表达式进行表单验证的示例代码。

具体步骤

第一步:获取表单元素和表单的值

在进行表单验证之前,需要获取表单元素以及表单元素的值。可以使用document.querySelector方法获取元素,使用value属性获取元素值。

const form = document.querySelector('#register-form'); // 获取表单元素
const usernameInput = document.querySelector('#username'); // 获取用户名输入框
const passwordInput = document.querySelector('#password'); // 获取密码输入框
const confirmPasswordInput = document.querySelector('#confirm-password'); // 获取确认密码输入框

const username = usernameInput.value;
const password = passwordInput.value;
const confirmPassword = confirmPasswordInput.value;

第二步:定义正则表达式

定义正则表达式需要考虑表单项的格式和规则,正则表达式的规则可以根据需要进行修改。

const usernameRegExp = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/; // 用户名正则表达式
const passwordRegExp = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,20}$/; // 密码正则表达式

解释一下上面的正则表达式,^ 表示字符串的开头,$ 表示字符串的结尾,[] 中表示可以匹配的一个字符,{} 表示匹配的次数,| 表示或。

  • usernameRegExp 表示用户名必须以字母开头,后面可以是字母、数字、下划线,长度为 5-16 个字符。
  • passwordRegExp 表示密码必须包含字母和数字,长度为 6-20 个字符。

第三步:使用正则表达式进行匹配

通过正则表达式进行匹配,将结果保存在变量中,然后根据匹配结果进行下一步的操作。

const isUsernameValid = usernameRegExp.test(username); // 是否是合法用户名
const isPasswordValid = passwordRegExp.test(password); // 是否是合法密码
const isConfirmPasswordValid = password === confirmPassword; // 密码是否一致

第四步:进行表单验证

将上面定义的验证结果进行判断,如果不符合表单项的规则,则显示相应的错误提示信息。

if (!isUsernameValid) {
  const usernameError = document.querySelector('#username-error');
  usernameError.innerHTML = '用户名不合法';
  usernameInput.classList.add('error'); // 添加错误样式
}

if (!isPasswordValid) {
  const passwordError = document.querySelector('#password-error');
  passwordError.innerHTML = '密码不合法';
  passwordInput.classList.add('error');
}

if (!isConfirmPasswordValid) {
  const confirmPasswordError = document.querySelector('#confirm-password-error');
  confirmPasswordError.innerHTML = '两次密码不一致';
  confirmPasswordInput.classList.add('error');
}

示例一:验证邮箱格式

验证邮箱格式可以使用以下的正则表达式:

const emailRegExp = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;

解释一下上面的正则表达式:

  • ^ 表示字符串的开头。
  • [\w-]+ 表示至少一个字母、数字、下划线、或横线。
  • (\.[\w-]+)* 表示匹配 . 加上一些字母、数字、下划线、或横线的组合,出现 0 次或多次。
  • @ 表示一个 @ 符号。
  • [\w-]+ 表示至少一个字母、数字、下划线、或横线。
  • (\.[\w-]+)+ 表示匹配 . 加上一些字母、数字、下划线、或横线的组合,出现 1 次或多次。
  • $ 表示字符串的结尾。

下面是验证邮箱格式的示例代码:

const emailInput = document.querySelector('#email'); // 获取邮箱输入框
const email = emailInput.value; // 获取邮箱值

const emailRegExp = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; // 邮箱验证正则表达式
const isEmailValid = emailRegExp.test(email); // 是否是合法邮箱

if (!isEmailValid) {
  const emailError = document.querySelector('#email-error');
  emailError.innerHTML = '邮箱格式不正确';
  emailInput.classList.add('error');
}

示例二:验证手机号格式

验证手机号格式可以使用以下的正则表达式:

const phoneRegExp = /^1[3|4|5|7|8][0-9]\d{8}$/;

解释一下上面的正则表达式:

  • ^ 表示字符串的开头。
  • 1 表示数字 1。
  • [3|4|5|7|8] 表示 3、4、5、7、8 中的一个数字。
  • [0-9] 表示任意一个数字。
  • \d{8} 表示匹配 8 个数字。
  • $ 表示字符串的结尾。

下面是验证手机号格式的示例代码:

const phoneInput = document.querySelector('#phone'); // 获取手机号输入框
const phone = phoneInput.value; // 获取手机号值

const phoneRegExp = /^1[3|4|5|7|8][0-9]\d{8}$/; // 手机号验证正则表达式
const isPhoneValid = phoneRegExp.test(phone); // 是否是合法手机号

if (!isPhoneValid) {
  const phoneError = document.querySelector('#phone-error');
  phoneError.innerHTML = '手机号格式不正确';
  phoneInput.classList.add('error');
}

总结

使用 JavaScript 进行表单验证的过程中,需要先获取表单元素和表单值,然后定义正则表达式,根据正则表达式进行匹配,最后进行表单验证。其中,验证不合法的表单项需要显示相应的错误提示信息。总体来说,使用正则表达式进行表单验证可以大大简化代码,提高效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 使用正则表达式进行表单验证的示例代码 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • javascript日期计算实例分析

    当我们构建一个网页或者web应用时,经常需要处理日期的计算。在JavaScript中,我们可以通过Date对象来实现日期的相关操作。 下面是一些具体的示例说明: 示例1:计算两个日期之间的天数 假设我们有两个日期,一个起始日期和一个结束日期。我们需要计算这两个日期之间的天数。可以使用以下代码: // 定义两个日期 let startDate = new Da…

    JavaScript 2023年5月27日
    00
  • JavaScript实战(原生range和自定义特效)简单实例

    好的。首先,我们先来了解一下该攻略的整体思路和实现目标。该实例主要涉及JavaScript中range的使用和自定义特效的实现,重点是通过这两个方面的实现,让读者对JavaScript的基础语法和实践应用有更深入的了解。接下来,我将分步骤详细讲解该攻略的实现。 步骤1:设置range的初始值和绑定事件 首先需要设置range的初值和绑定事件,代码如下: &l…

    JavaScript 2023年6月10日
    00
  • ES6入门教程之let、const的使用方法

    ES6入门教程之let、const的使用方法 let和const的概念 ES6之前,我们只能用 var 关键字来定义变量。在 ES6 中,我们可以使用 let 和 const 来定义变量和常量。 一般情况下,我们使用 let 来定义变量。const 则主要用于定义常量,一旦定义后就不能被重新赋值了。 let的使用方法 使用 let 关键字定义变量,可以避免很…

    JavaScript 2023年6月11日
    00
  • JS处理数据四舍五入(tofixed与round的区别详解)

    JS处理数据四舍五入(toFixed与round的区别详解) 在JavaScript中,处理数字的操作经常会用到四舍五入,而通过使用toFixed和round方法可以实现对数字的四舍五入操作。但是它们的实现方式以及得出的结果有些许不同,下面就详细介绍一下两者的区别。 toFixed方法 toFixed()方法是一个对象方法,它会把数字转换为字符串,并且指定小…

    JavaScript 2023年5月28日
    00
  • 使用 JS 复制页面内容的三种方案

    下面是使用 JS 复制页面内容的三种方案的完整攻略: 一、使用 document.execCommand() 方法 1. 步骤 将待复制的内容放到一个元素中,例如一个 div 标签,在这里我们以一个具有 class 为 “copy-content” 的 div 块为例。 html<div class=”copy-content”> <p&g…

    JavaScript 2023年6月11日
    00
  • 如何实现修改密码时密码框显示保存到cookie的密码

    实现修改密码时密码框显示保存到cookie的密码,可以按照以下步骤进行: 绑定修改密码的button或form的submit事件,通过JavaScript获取用户输入的新密码,然后将密码存储到cookie中。 示例代码: // 获取用户输入的新密码 const newPassword = document.getElementById(‘newPasswor…

    JavaScript 2023年6月11日
    00
  • ASP的Error对象知识简析

    ASP的Error对象知识简析 在ASP开发中,如果出现错误,ASP会自动创建一个名为Error的对象,来存储出错信息。Error对象的相关属性和方法可以方便我们查找和处理错误信息。以下是对ASP Error对象的一些简单分析。 Error对象的属性 Error对象包含以下常用属性: ASPError.ASPCode 返回的是一个数字值,表示出错的标准代码。…

    JavaScript 2023年6月11日
    00
  • 在JavaScript的jQuery库中操作AJAX的方法讲解

    下面是“在JavaScript的jQuery库中操作AJAX的方法讲解”的完整攻略。 jQuery的AJAX简介 AJAX是Asynchronous JavaScript and XML的缩写,指的是一种利用JavaScript和XML技术实现异步通信的方式。jQuery是一个非常流行的JavaScript库,也提供了非常便捷的AJAX操作方式。 jQuer…

    JavaScript 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部