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日期控件My97DatePicker基本用法

    以下是JS日期控件My97DatePicker基本用法的完整攻略。 一、My97DatePicker是什么 My97DatePicker是一款轻便好用的日期控件,可以自由定制样式,并支持所有主流的浏览器。 二、基本用法 1. 引入My97DatePicker 在文档的标签中插入以下代码,即可引入My97DatePicker: <link rel=&qu…

    JavaScript 2023年5月27日
    00
  • 一文读懂TS 中联合类型和交叉类型各自的含义

    一文读懂 TS 中联合类型和交叉类型各自的含义 在 TypeScript 中,联合类型和交叉类型是两种非常重要的概念。它们可以帮助我们更好地描述类型,提高代码的清晰度和健壮性。接下来我们将详细讲解这两种类型的含义和用法。 联合类型 联合类型(Union Types)表示一个值可以是多种类型中的一种。用 | 符号连接多个类型,表示这些类型是可选的,例如: le…

    JavaScript 2023年5月28日
    00
  • jQuery使用cookie与json简单实现购物车功能

    下面是详细讲解“jQuery使用cookie与json简单实现购物车功能”的完整攻略: 简介 购物车是电商网站必不可少的功能,通过购物车,用户可以将自己关心的商品加入到购物车中,然后在统一的界面进行管理、筛选、结算等操作。本攻略将讲解如何使用 jQuery、JSON、Cookie 等技术实现购物车功能。 步骤讲解 步骤1:购物车结构设计 首先,我们需要考虑购…

    JavaScript 2023年5月27日
    00
  • JS中sort函数排序用法实例分析

    下面是JS中sort函数排序用法实例分析的详细攻略。 什么是sort函数排序? sort()是JavaScript数组的一个方法,用于对数组元素进行排序。 sort()方法不创建新数组,而是直接修改原始数组的顺序。 sort()方法默认按字母顺序排序,如果是数字需要先将其转为字符串。 sort()方法可以接受一个函数作为参数,该函数指定排序规则。 sort函…

    JavaScript 2023年5月28日
    00
  • Angular实现的table表格排序功能完整示例

    让我为你详细讲解“Angular实现的table表格排序功能完整示例”的完整攻略。 什么是Angular实现的table表格排序功能 在Angular中,我们可以通过使用ngFor指令循环渲染table表格中的数据,并在表格头部添加按钮进行排序,达到对表格数据排序的目的。这种方法可以在应用中节省代码量,并提高数据可读性。 如何实现Angular实现的tabl…

    JavaScript 2023年6月10日
    00
  • JavaScript实现多维数组的方法

    实现多维数组的方法主要分为两种:数组嵌套和扁平化转换。本文将详细介绍这两种方法,并附上代码示例。 数组嵌套 在 JavaScript 中,多维数组最简单的实现方法就是使用数组嵌套。例如,下面是一个二维数组的示例: const arr2d = [ [1, 2], [3, 4], ]; 要创建三维数组,只需在二维数组的基础上再嵌套一层数组: const arr3…

    JavaScript 2023年5月27日
    00
  • JavaScript插件化开发教程 (二)

    下面是“JavaScript插件化开发教程 (二)”的完整攻略。 什么是插件 插件是一种可扩展的软件,可以嵌入到其他应用程序中,增加新的功能。在前端开发中,插件就是可以在网站或者应用程序中被嵌入的 JavaScript 库。 插件的优点 使用插件可以很大程度上提升代码重用和开发效率。当我们需要实现某个功能时,只需引入对应的插件即可,无需从头开始编写代码。而且…

    JavaScript 2023年5月18日
    00
  • 基于JS实现PHP的sprintf函数实例

    基于JS实现PHP的sprintf函数实例 背景介绍 在PHP开发中,经常使用sprintf来格式化输出字符串,该函数支持各种数据类型的格式化输出,是一种非常实用的函数。而在JS中,却并没有提供类似sprintf函数的实现。本文通过自己编写JS的sprintf函数来实现对PHP sprintf的替代。 实现步骤 步骤1:了解sprintf函数 在开始编写我们…

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