原生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日

相关文章

  • 利用纯css实现缩略图悬停效果实例代码

    下面是利用纯CSS实现缩略图悬停效果的完整攻略。 确定页面布局 首先需要确定页面布局,可以使用HTML和CSS代码实现。通常情况下会使用一个列表来存放所有的缩略图,并设置每个列表项的宽度和高度,如下所示: <ul class="thumbnail-list"> <li> <a href="#&quo…

    JavaScript 2023年5月28日
    00
  • 放弃 console.log 吧!用 Debugger 你能读懂各种源码

    很多同学不知道为什么要用 debugger 来调试,console.log 不行么? 还有,会用 debugger 了,还是有很多代码看不懂,如何调试复杂源码呢? 这篇文章就来讲一下为什么要用这些调试工具: console.log vs Debugger 相信绝大多数同学使用 console.log 调试的,把想看的变量值打印在控制台。 这样能满足需求,但是…

    JavaScript 2023年4月17日
    00
  • JavaScript的DOM事件详解

    下面是JavaScript的DOM事件详解的完整攻略。 什么是DOM事件? DOM事件是指由DOM元素触发的事件,包括如下几种类型: 鼠标事件:click、mousedown、mousemove、mouseup、mouseover、mouseout、mouseenter、mouseleave等。 键盘事件:keydown、keypress、keyup等。 表…

    JavaScript 2023年6月10日
    00
  • js通过Date对象实现倒计时动画效果

    下面就是“js通过Date对象实现倒计时动画效果”的完整攻略。 什么是倒计时动画效果? 倒计时动画效果,是指在一定时间内,从一个数字不断递减到另一个数字的动态效果,通常用于日期倒计时、秒杀倒计时等场景。 怎么通过Date对象实现倒计时动画效果? 在JavaScript中,Date对象可以获取当前时间、日期等信息。通过获取该时间的时、分、秒等信息,并将倒计时目…

    JavaScript 2023年5月27日
    00
  • asp.net Javascript获取CheckBoxList的value

    下面我将详细讲解如何使用 JavaScript 在 ASP.NET 中获取 CheckBoxList 的值。 1. 获取 CheckBoxList 中选中项的值 要想获取 CheckBoxList 中选中项的值,可以通过以下的方式实现: // 获取 CheckBoxList 的实例 var cbList = document.getElementById(‘…

    JavaScript 2023年6月10日
    00
  • 详解JavaScript基于面向对象之创建对象(1)

    首先回答一下这篇“详解JavaScript基于面向对象之创建对象(1)”的攻略。 该文章主要介绍了JavaScript中创建对象的方式,具体内容包括: 对象字面量创建对象 构造函数创建对象 Object.create方法创建对象 上述方法是JavaScript中最常见的创建对象的方式,其中对象字面量的使用最为广泛,而构造函数和Object.create方法则…

    JavaScript 2023年5月27日
    00
  • javascript Canvas动态粒子连线

    下面是关于“javascript Canvas动态粒子连线”的完整攻略。 什么是Canvas动态粒子连线? Canvas动态粒子连线是一种使用canvas绘图技术实现的特效,它通过创建多个粒子,并且使多个粒子之间产生连线,形成各种炫酷的效果,比如烟花绽放、星空闪烁等。这种效果可以通过JavaScript代码实现,而且应用广泛,被用于各种类型的网页和应用程序中…

    JavaScript 2023年6月10日
    00
  • 原生Aajax 和jQuery Ajax 写法个人总结

    原生Ajax与jQuery Ajax写法个人总结 简介 Ajax(Asynchronous JavaScript and XML)是指一种创建交互式、快速动态网页的技术,在不重新加载整个网页的情况下,能够异步地更新部分网页内容。本文将介绍原生Ajax与jQuery Ajax的写法及其异同点。 原生Ajax写法 XMLHttpRequest对象 原生Ajax基…

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