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

yizhihongxing

下面是原生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日

相关文章

  • JS实现“隐藏与显示”功能(多种方法)

    JS实现“隐藏与显示”功能是Web开发中常用的交互效果。下面我将为大家介绍几种实现方法,并演示两个简单的示例。 方法一:使用jQuery实现“隐藏与显示”功能 在使用jQuery实现“隐藏与显示”功能时,可以调用jQuery的方法实现DOM元素的隐藏和显示。以下是实现代码: // 隐藏元素 $("#element").hide(); //…

    JavaScript 2023年5月19日
    00
  • JS中箭头函数与this的写法和理解

    JS中箭头函数与this的写法和理解是一个非常重要的问题,因为箭头函数的this规则和普通函数有所不同,如果不理解它的具体规则,就容易出现一些令人困惑的问题。下面就是一份关于箭头函数和this的完整攻略。 箭头函数的基本语法 箭头函数是在ES6中引入的一种语法,它是一种特殊的函数,它有以下的形式: (parameter1, parameter2, …, …

    JavaScript 2023年6月10日
    00
  • 基于JavaScript实现密码框验证信息

    关于“基于JavaScript实现密码框验证信息”的完整攻略,介绍如下: 1. 确定密码验证的具体需求 在实现密码框验证信息前,首先需要明确密码验证的具体需求,例如: 密码长度是否需要限制? 密码是否需要包含特定的字符、数字、大小写字母、符号等要素? 密码是否需要与确认密码保持一致? 密码校验失败时需要如何提示用户? 透彻地明确这些细节,才能更好地编写 Ja…

    JavaScript 2023年6月10日
    00
  • JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)

    下面将分别讲解工厂模式、构造函数模式、原型模式、混合模式、动态原型模式的基础概念和应用,并且提供两个示例演示它们的具体用法。 工厂模式 工厂模式用于创建同一类型对象的方式,这种方式隐藏了对象创建的复杂性,避免了使用new关键字的过多,同时也可以使代码更加灵活。它通过一个函数来封装了所有实例化对象行为,并且返回一个新对象。下面是一个最简单的创建对象的工厂模式的…

    JavaScript 2023年5月27日
    00
  • JavaScript实现广告弹窗效果

    JavaScript实现广告弹窗效果的攻略包含以下几个步骤: 1. 创建HTML结构 我们需要为广告弹窗准备一个HTML结构,可以在页面中创建一个div元素,然后在其中嵌套一个img标签和一个关闭按钮元素。其中,img标签的src属性设置为我们需要展示的广告图片地址。例如: <div id="ad"> <img src=…

    JavaScript 2023年6月11日
    00
  • JSON+JavaScript处理JSON的简单例子

    关于“JSON+JavaScript处理JSON的简单例子”的攻略,我将从以下几个方面进行讲解: JSON的基本概念和用途 使用JavaScript处理JSON的方法 示例:将JSON字符串转换为JavaScript对象 示例:将JavaScript对象转换为JSON字符串 1. JSON的基本概念和用途 JSON(JavaScript Object Not…

    JavaScript 2023年5月19日
    00
  • JavaScript中的异常处理

    JavaScript中的异常处理涉及到一些常用的语句和方法,包括try…catch语句、throw语句、Error对象等。它的作用是在运行过程中捕获和处理一些未预料到的错误或异常,防止程序因此崩溃。下面就对JavaScript中的异常处理进行详细讲解。 异常及其分类 在JavaScript中,异常指的是在程序执行过程中发生的错误或意外情况。常见的异常类型…

    JavaScript 2023年5月27日
    00
  • vue-router定义元信息meta操作

    vue-router是Vue.js官方的路由管理库,它可以帮助我们快速开发单页应用程序。在应用程序中,通常会有很多的页面,而有时候需要为这些页面增加一些标识,例如页面标题、页面关键字、页面描述等等。这些标识可以让搜索引擎更好地索引网站内容,也可以让用户更好地理解页面。 为此,vue-router提供了定义元信息meta的操作。元信息指我们在head标签中添加…

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