js注册时输入合法性验证方法

yizhihongxing

下面是详细的"js注册时输入合法性验证方法"攻略:

步骤一:获取注册表单中需要验证的DOM元素

在注册表单中,可能需要验证用户的姓名、邮箱、密码、确认密码等信息,我们需要获取这些DOM元素,方便后面使用。

<body>
    <form id="registerForm">
        <div>
            <label for="userName">用户名:</label>
            <input type="text" id="userName" name="userName" />
        </div>
        <div>
            <label for="email">电子邮箱:</label>
            <input type="text" id="email" name="email" />
        </div>
        <div>
            <label for="password">设置密码:</label>
            <input type="password" id="password" name="password" />
        </div>
        <div>
            <label for="confirmPassword">确认密码:</label>
            <input type="password" id="confirmPassword" name="confirmPassword" />
        </div>
        <div>
            <button type="submit">注册</button>
        </div>
    </form>
</body>

<script>
    const formEl = document.querySelector('#registerForm');
    const userNameEl = document.querySelector('#userName');
    const emailEl = document.querySelector('#email');
    const passwordEl = document.querySelector('#password');
    const confirmPasswordEl = document.querySelector('#confirmPassword');
</script>

步骤二:定义验证函数

接下来,我们需要为每个输入框元素定义一个验证函数,用于验证输入是否合法。一个简单的验证函数应该接受一个参数,表示需要验证的值,返回一个布尔值,表示是否合法。

以下是一个例子,用于验证用户名是否为合法字符串。

function validateUsername(username) {
  const usernameReg = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/; // 匹配由数字字母下划线组成的5-16位字符串,且首字母必须是字母 
  return usernameReg.test(username);
}

步骤三:注册表单提交事件

接下来,我们需要为注册表单添加一个提交事件,用于在用户提交表单时验证输入是否合法。在提交事件回调函数中,我们需要对每个输入框元素依次进行验证。

以下是一个例子:

formEl.addEventListener('submit', function(e) {
    e.preventDefault(); // 防止浏览器默认刷新
    const username = userNameEl.value.trim();
    const email = emailEl.value.trim();
    const password = passwordEl.value.trim();
    const confirmPassword = confirmPasswordEl.value.trim();
    if (!validateUsername(username)) {
        alert('用户名不合法!');
        return;
    }
    if (!validateEmail(email)) {
        alert('邮箱不合法!');
        return;
    }
    if (!validatePassword(password)) {
        alert('密码长度不合法!');
        return;
    }
    if (password !== confirmPassword) {
        alert('两次密码不一致!');
        return;
    }
    // 表单提交后续操作
});

上面这个例子,通过e.preventDefault()方法阻止了表单默认的提交刷新行为。然后分别调用验证函数对每个表单元素的值做出了验证,并在验证不合法时弹出相应的提示,否则直接执行表单提交后续的操作。

示例一:验证邮箱

定义邮箱合法性验证函数:

function validateEmail(email) {
  const emailReg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  return emailReg.test(email);
}

在表单提交回调函数中使用该函数进行验证:

formEl.addEventListener('submit', function(e) {
    e.preventDefault(); // 防止浏览器默认刷新
    const username = userNameEl.value.trim();
    const email = emailEl.value.trim();
    const password = passwordEl.value.trim();
    const confirmPassword = confirmPasswordEl.value.trim();
    if (!validateUsername(username)) {
        alert('用户名不合法!');
        return;
    }
    if (!validateEmail(email)) {
        alert('邮箱不合法!');
        return;
    }
    if (!validatePassword(password)) {
        alert('密码长度不合法!');
        return;
    }
    if (password !== confirmPassword) {
        alert('两次密码不一致!');
        return;
    }
    // 表单提交后续操作
});

示例二:验证密码长度

定义密码合法性验证函数:

function validatePassword(password) {
  return password.length >= 8 && password.length <= 16;
}

在表单提交回调函数中使用该函数进行验证:

formEl.addEventListener('submit', function(e) {
    e.preventDefault(); // 防止浏览器默认刷新
    const username = userNameEl.value.trim();
    const email = emailEl.value.trim();
    const password = passwordEl.value.trim();
    const confirmPassword = confirmPasswordEl.value.trim();
    if (!validateUsername(username)) {
        alert('用户名不合法!');
        return;
    }
    if (!validateEmail(email)) {
        alert('邮箱不合法!');
        return;
    }
    if (!validatePassword(password)) {
        alert('密码长度不合法!');
        return;
    }
    if (password !== confirmPassword) {
        alert('两次密码不一致!');
        return;
    }
    // 表单提交后续操作
});

上面这个例子,validatePassword函数用于验证密码长度是否在8到16个字符之间。在表单提交事件回调函数中,如果密码不合法,会弹出一个提示框,提示密码长度不合法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js注册时输入合法性验证方法 - Python技术站

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

相关文章

  • 原生JS实现图片无缝滚动方法(附带封装的运动框架)

    下面是对“原生JS实现图片无缝滚动方法(附带封装的运动框架)”的完整攻略。 1. 实现图片无缝滚动的基本思路 实现图片无缝滚动,是需要对图片进行滚动并将其无限循环的。具体的实现思路如下: 创建一个容器,设置其宽度为图片的总宽度。 手动复制一份图片,将其添加到容器的最后。 定时器每次移动容器的left值,实现滚动效果。 当容器的left值达到任何一张图片的边界…

    JavaScript 2023年6月11日
    00
  • JS数组方法reduce的用法实例分析

    【JS数组方法reduce的用法实例分析】 简介 reduce() 方法可以用于在 JavaScript 数组中的所有元素上执行一个 reducer 函数(指定一个回调函数来依次执行数组中每个值)。reduce() 方法的返回值为最终累计结果的值,例如,对于数组 [1, 2, 3, 4] ,调用 reduce() 方法,则最终的返回值为 10 (数组各元素之…

    JavaScript 2023年5月28日
    00
  • JavaScript高级程序设计 读书笔记之十 本地对象Date日期

    《JavaScript高级程序设计》第十章讲解了JavaScript中本地对象Date日期,是JavaScript中处理日期和时间的重要工具。下面是对这一章节的完整攻略。 一、日期时间的创建和实例化 在JavaScript中,可以使用new Date()创建一个日期对象。它会默认将当前时间作为日期时间的实例。也可以传入一个表示日期的字符串或者一个表示日期时间…

    JavaScript 2023年6月10日
    00
  • js中函数调用的两种常用方法使用介绍

    JS中函数调用的两种常用方法是函数声明与函数表达式,下面我将对这两种方法进行介绍和举例子说明。 1. 函数声明 函数声明的形式如下: function functionName(parameters) { //函数体 } 其中,functionName 是函数名,parameters 是参数列表,函数体里面可以写任何合法的 JS 代码。函数声明完之后,我们可…

    JavaScript 2023年5月27日
    00
  • Ajax 框架学习笔记

    Ajax 框架学习笔记攻略 Ajax 是 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)的缩写,它可以通过在不刷新页面的情况下与服务器进行数据交互,使得网站更为流畅和用户友好。下面将详细介绍 Ajax 框架学习的完整攻略: 1. 学习 Ajax 请求和响应 首先要了解的是 Ajax 请求和响应,包括…

    JavaScript 2023年6月11日
    00
  • javascript设计模式 – 状态模式原理与用法实例分析

    下面是“javascript设计模式 – 状态模式原理与用法实例分析”的完整攻略,包括原理、用法实例分析和示例说明。 前言 状态模式是一种行为型模式,它用一种更好的方式来处理对象状态之间的转换。在这篇文章中,我们将讨论状态模式的原理和用法实例分析。 状态模式原理 状态模式是一种通过使用状态和转换来实现状态转换的行为型模式。在这种模式中,状态表示为一个对象,而…

    JavaScript 2023年6月10日
    00
  • Js+Ajax,Get和Post在使用上的区别小结

    当我们使用 JavaScript 和 Ajax 发送请求到服务器时,我们通常会使用 GET 和 POST 方法。虽然它们都用于发送 HTTP 请求,但它们在实现和用法上是不同的。以下是它们之间的区别: GET 方法 GET 方法是一种在查询字符串中传递参数的 HTTP 请求方法,它通过 URL 发送数据到服务器。这意味着通过 GET 发送的请求,请求的数据可…

    JavaScript 2023年6月11日
    00
  • javascript实现生成并下载txt文件方式

    生成并下载 txt 文件是 JavaScript 中常见的需求之一,我们可以通过以下步骤来实现: 1. 创建 Blob 对象 首先,我们需要将文本内容转换成 Blob 对象。Blob 表示二进制数据,它的内容可以是文本、图片、音视频等,可以通过 Blob 构造函数创建。 示例代码: const content = "Hello, World!&qu…

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