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

表单验证是 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日

相关文章

  • 纯js实现页面返回顶部的动画(超简单)

    以下是纯JS实现页面返回顶部动画的攻略: 1. 准备工作 在 HTML 的 head 标签中引入一个自定义的 JavaScript 文件,比如: <head> <script src="js/scroll-top.js"></script> </head> 2. 编写 JavaScript …

    JavaScript 2023年6月10日
    00
  • JS正则获取HTML元素的方法

    当我们在开发Web应用时,经常需要在DOM中根据正则表达式来查找和获取特定的HTML元素。如何使用JavaScript正则表达式来处理DOM的HTML元素呢?下面是一些方法: 使用JavaScript内置函数来获取HTML元素 JavaScript通过document对象来表示整个HTML文档。document对象上使用的内置函数可以轻松地获取DOM元素。通…

    JavaScript 2023年6月10日
    00
  • javascript this指向相关问题及改变方法

    JavaScript中的this指向问题一直是令新手程序员困扰的问题。在JavaScript中,this通常指向当前函数所属的对象,但是在不同的上下文中,this的值有可能会发生变化。下面让我们逐步了解JavaScript中this指向的相关问题及如何改变this的指向。 1. JavaScript中this的指向 this在JavaScript中的指向有以…

    JavaScript 2023年6月11日
    00
  • Discuz .net版本中的短消息系统

    Discuz .net是一款知名的论坛程序,其短消息系统是其重要的功能之一。本文将详细讲解Discuz .net版本中的短消息系统,包括如何创建、管理和使用短消息系统。 创建和启用短消息系统 在Discuz .net中,默认情况下是已经启用了短消息系统的,而且用户可以在论坛的任何页面中通过左上角的“短消息”链接进入短消息系统。如果管理员需要修改短消息系统的设…

    JavaScript 2023年6月11日
    00
  • 跟我学习javascript的var预解析与函数声明提升

    下面就是“跟我学习JavaScript的var预解析与函数声明提升”的完整攻略。 JavaScript中的预解析 在JavaScript中,预解析是指在执行代码之前,将变量和函数的声明提前,这种行为称为预解析或者预编译。 var的预解析 在JavaScript中,var关键字声明的变量会在预解析阶段被提前声明。但是需要注意的是,只有声明会被提前,赋值不会被提…

    JavaScript 2023年5月28日
    00
  • javascript实现可键盘控制的抽奖系统

    需要实现一个可键盘控制的抽奖系统,我们可以采用JavaScript语言编写代码。下面,我将详细介绍实现步骤: 步骤一:创建HTML页面 首先,我们需要在HTML页面中创建一个大转盘和一个按键,用户可以通过这个按钮来控制转盘的停止。 <!DOCTYPE html> <html> <head> <meta charset…

    JavaScript 2023年6月11日
    00
  • 介绍JavaScript中Math.abs()方法的使用

    介绍JavaScript中Math.abs()方法的使用的攻略如下: 1. Math.abs()方法的概述 Math.abs()是JavaScript内置的数学函数,用于返回一个数的绝对值。接受一个参数,返回该参数的绝对值(也就是该参数的正数)。如果参数不是数值类型,则该方法会尝试将其转换为数值类型。 2. Math.abs()方法的语法 Math.abs(…

    JavaScript 2023年5月28日
    00
  • Javascript Date getFullYear() 方法

    以下是关于JavaScript Date对象的getFullYear()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的getFullYear()方法 JavaScript Date对象的getFullYear()方法返回一个表示年的四位数字。该方法可用获取当前日期的年份。 下是使用Date对象的getFullYear()方法的示例:…

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