原生js实现表单的正则验证(验证通过后才可提交)

下面是原生js实现表单的正则验证的完整攻略,分为以下几个步骤:

1. 前置知识

在实现表单的正则验证之前,需要先了解表单的基本结构和事件绑定的方法。

表单基本结构

<form>
  <input type="text" name="username" id="username">
  <input type="password" name="password" id="password">
  <!-- 其他表单元素 -->
  <button type="submit">提交</button>
</form>

在表单中,我们需要对其中的表单元素进行验证,常见的表单元素包括 input、select、textarea 等。

事件绑定方法

在 JS 中,常用的事件绑定方法有 addEventListenerattachEvent,这里我们以 addEventListener 为例:

var btn = document.querySelector('button');
btn.addEventListener('click', function() {
  // 按钮被点击时的处理代码
});

2. 正则表达式验证

在实现表单正则验证时,我们需要使用正则表达式来判断表单元素的值是否符合预期。常见的正则表达式如下:

  • 邮箱正则:/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/
  • 手机号正则:/^[1][3-9][0-9]{9}$/
  • 身份证号正则:/^\d{17}[\d|X]$|^\d{15}$/
  • 网址正则:/^((https?|ftp|file):\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?$/

JS 中使用正则表达式进行匹配的方法为 test(),示例代码如下:

var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if (emailReg.test(email)) {
  // 邮箱格式正确
} else {
  // 邮箱格式错误
}

3. 表单验证实现

在实现表单正则验证时,我们需要为表单添加一个 submit 的事件监听器,代码如下:

var form = document.querySelector('form');
form.addEventListener('submit', function(event) {
  event.preventDefault(); // 防止表单的默认提交行为
  // 表单验证逻辑
});

在表单验证逻辑中,我们需要遍历表单的每个表单元素,判断其是否符合正则表达式的要求,如果有任何一个表单元素不符合要求,则表单验证失败,否则表单验证成功,可以进行表单的提交行为。

以下是一些示例代码:

邮箱验证示例

var form = document.querySelector('form');
form.addEventListener('submit', function(event) {
  event.preventDefault(); // 防止表单的默认提交行为
  var email = document.querySelector('#email').value;
  var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
  if (emailReg.test(email)) {
    // 邮箱格式正确,可以进行表单提交
    form.submit();
  } else {
    alert('邮箱格式不正确!');
  }
});

电话号码验证示例

var form = document.querySelector('form');
form.addEventListener('submit', function(event) {
  event.preventDefault(); // 防止表单的默认提交行为
  var phone = document.querySelector('#phone').value;
  var phoneReg = /^[1][3-9][0-9]{9}$/;
  if (phoneReg.test(phone)) {
    // 手机号码格式正确,可以进行表单提交
    form.submit();
  } else {
    alert('手机号码格式不正确!');
  }
});

以上就是原生 JS 实现表单正则验证的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生js实现表单的正则验证(验证通过后才可提交) - Python技术站

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

相关文章

  • Java返回可变引用对象问题整理

    让我来详细讲解一下Java中返回可变引用对象问题的完整攻略。 什么是可变引用对象 在Java中,一个类分为基本类型和引用类型两种类型。基本类型的数据在赋值时直接复制了值本身,不会影响到原来的数据;而引用类型则是在赋值时复制的是引用,这个引用指向的是真正的数据空间。当一个引用类型变量被赋值时,它指向的地址就发生了改变,但是它所指向的对象的地址没有改变。 那么,…

    JavaScript 2023年6月11日
    00
  • JS数据分析数据去重及参数序列化示例

    下面是“JS数据分析数据去重及参数序列化示例”的完整攻略。 一、什么是数据去重? 数据去重是指在一组数据中删除重复数据的过程。在网站数据分析过程中,如果要统计某个特定行为的用户数,就需要进行数据去重。 二、如何进行数据去重? 数据去重的步骤如下: 1. 获取原始数据 获取需要进行去重处理的原始数据,这里我们以一个购物网站为例,假设有一个存储用户购买行为的数据…

    JavaScript 2023年6月11日
    00
  • js数组方法reduce经典用法代码分享

    当需要将一个数组中的所有元素进行计算并且结果为一个值时,可以使用 JavaScript 数组方法 reduce()。 reduce() 方法对数组中的每个元素依次执行提供的函数,前一个执行结果作为下一个执行的参数,直到数组被处理完并且返回一个计算结果。 下面是 reduce() 方法的语法: array.reduce(function(total, curr…

    JavaScript 2023年5月27日
    00
  • JS点击某个图标或按钮弹出文件选择框的实现代码

    要在JS中点击某个图标或按钮弹出文件选择框,需要使用<input type=”file”>标签。这个标签会创建一个文件选择框,用户可以浏览文件并选择其中之一。 第一种示例 以下是使用HTML和JS实现这一功能的示例代码: <!DOCTYPE html> <html> <head> <title>文件…

    JavaScript 2023年5月27日
    00
  • JavaScript requestAnimationFrame动画详解

    下面是详细讲解“JavaScript requestAnimationFrame动画详解”的完整攻略。 一、什么是requestAnimationFrame requestAnimationFrame是一个用于浏览器动画渲染的API,它可以被用来优化动画循环的性能。相较于使用setTimeout或setInterval方法,使用requestAnimatio…

    JavaScript 2023年6月10日
    00
  • JS删除数组中某个元素的四种方式总结

    JS删除数组中某个元素的四种方式总结 JavaScript中有多种方式可以删除数组中某个元素,本文将总结其中常用的四种方式并且进行详细介绍。 方法一:splice() splice()方法可以在数组中添加、删除或替换元素。可以通过指定两个参数来删除一个或多个元素。第一个参数指定从哪个索引开始进行删除,第二个参数指定要删除的元素个数。以下是该方法的语法: ar…

    JavaScript 2023年6月10日
    00
  • JS获取子、父、兄节点方法小结

    JS获取子、父、兄节点方法小结 在JavaScript中,我们经常需要获取某个元素的子元素、父元素或者兄弟元素来执行一些特定的操作。下面我们来总结一下JS获取子、父、兄节点的常用方法。 一、获取子节点 使用childNodes属性可以获取当前元素的所有子节点,包括文本节点、注释节点等。但是这个属性返回的是一个NodeList对象,如果想要获取指定位置的子元素…

    JavaScript 2023年6月10日
    00
  • 组件库Monmrepo架构与开发调试环境构建详解

    组件库Monorepo架构与开发调试环境构建详解 什么是Monorepo架构? Monorepo架构是一种管理多个应用或模块的代码库的方式。 它将所有的应用和模块放在一个代码库中进行管理,这样可以方便地跨多个项目共享代码。 这种架构的主要优点是因为代码库更加集中,使得组织结构更加简单,能够更加方便地进行重构和重命名,同时也能够避免出现重复的代码。 如何使用M…

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