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

下面是详细的"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日

相关文章

  • 深入浅析JavaScript系列(13):This? Yes,this!

    “深入浅析JavaScript系列(13):This? Yes,this!”是一篇关于JavaScript中this关键字的详细讲解的文章。在文章中,我们可以了解到this的实际含义,常见的用法以及使用场景。 什么是this this是一个关键字,用于引用当前上下文中的对象。具体上下文是由函数的执行方式所决定的。可以在函数内部使用this来引用当前对象。th…

    JavaScript 2023年5月18日
    00
  • 为JS扩展Array.prototype.indexOf引发的问题及解决办法

    如果扩展 Array.prototype.indexOf 方法,可能会在不经意间影响到其他代码或第三方库的运行,导致一些难以发现或修复的奇怪问题。在扩展 Array.prototype.indexOf 方法时,应该考虑仔细分析其潜在影响,并采取一些防范措施以避免可能出现的冲突和问题。 为JS扩展Array.prototype.indexOf引发的问题 当我们…

    JavaScript 2023年6月11日
    00
  • JS Attribute属性操作详解

    JS Attribute 属性操作详解 Attribute 属性是 HTML 中的一种重要的属性类型,它们可以包含 HTML 元素的元数据,并且广泛应用于 JavaScript 编程。在这篇文章中,我们将会深入探讨 JavaScript 中的 Attribute 属性操作。我们将全面介绍属性操作的所有方面,包括读取、设置、更新和删除等。 什么是 Attrib…

    JavaScript 2023年6月10日
    00
  • JavaScript 程序循环结构详解

    JavaScript 程序循环结构详解 什么是循环结构 在编写程序时,经常需要重复执行某个操作,这就是循环结构。循环结构可以对一段代码重复执行多次,可以通过循环结构来节约代码量和提高执行效率。 JavaScript 中循环结构 JavaScript 中有两种常见的循环结构:for 循环和 while 循环。 for 循环 for 循环通常用于已知循环执行次数…

    JavaScript 2023年5月27日
    00
  • javascript 兼容各个浏览器的事件

    JS 兼容各个浏览器的事件主要是针对旧版浏览器(如IE 8及以下版本)的事件处理进行兼容。 一、事件绑定兼容处理 旧版浏览器中经常使用 attachEvent 方法绑定事件,而现代浏览器则使用 addEventListener 方法。因此需要对这两种方法进行不同的处理以实现跨浏览器兼容。 function addEventHandler(element, e…

    JavaScript 2023年6月10日
    00
  • 解决JS外部文件中文注释出现乱码问题

    解决JS外部文件中文注释出现乱码问题,主要是解决编码方式不匹配导致的问题。下面的攻略可以帮助您解决这个问题。 步骤一:修改文件编码 首先,需要检查JS外部文件的编码方式,确保它与网站的编码方式一致。如果有所不同,就需要将JS文件转换为网站使用的编码方式。可以尝试以下两种方法: 使用文本编辑器修改编码 如果您使用的是文本编辑器,可以打开外部JS文件并修改其编码…

    JavaScript 2023年5月19日
    00
  • JS实现动态添加DOM节点和事件的方法示例

    当我们需要在页面中动态添加元素或者事件时,javascript就是我们的好帮手。下面是实现动态添加DOM节点和事件的方法示例的攻略。 动态添加DOM节点 我们可以使用document.createElement()方法动态创建一个新的元素节点,并使用appendChild()方法将其添加到我们需要的位置上。 // 创建一个新的div元素 let newDiv…

    JavaScript 2023年6月10日
    00
  • AngularJS通过$location获取及改变当前页面的URL

    AngularJS是一个前端MVVM框架,通过它可以方便地进行网页开发。在网页开发中,经常需要获取或改变当前页面的URL,AngularJS提供了$location服务实现这一功能。下面是一份简要的攻略: 1. $location服务的概述 AngularJS中的$location服务用于获取和改变URL。通过$location服务,可以获取当前页面的URL…

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