js简单实现用户注册信息的校验代码

yizhihongxing

下面就是关于js简单实现用户注册信息的校验代码的完整攻略。

一、需求分析

在开发一个注册功能的网站时,我们需要对用户输入的注册信息进行校验,包括以下内容:

  • 用户名:长度在6-20之间,只能包含字母、数字、下划线。
  • 密码:长度在6-20之间,包含至少一个大写字母、至少一个小写字母和至少一个数字。
  • 确认密码:需要与密码一致。
  • 邮箱:需要符合邮箱格式。
  • 手机号码:必须为正确的中国大陆手机号。

在前端页面上对输入框进行了一些基本的限制,但是我们还需要在后台对用户输入的注册信息进行更加严格的校验。

二、编写代码

1. 对用户名进行校验

对用户输入的用户名进行校验,我们可以用正则表达式进行判断。具体代码如下:

function checkUsername(username) {
  let flag = true;
  const reg = /^\w{6,20}$/;
  if (!reg.test(username)) {
    flag = false;
  }
  return flag;
}

这里我们定义了一个checkUsername()函数,接收用户输入的用户名作为参数,如果用户名符合规定,则返回true,否则返回false。其中,正则表达式/^\w{6,20}$/表示用户名必须由字母、数字、下划线组成,长度在6~20个字符之间。

2. 对密码进行校验

对用户输入的密码进行校验,我们同样可以使用正则表达式进行判断。具体代码如下:

function checkPassword(password) {
  let flag = true;
  const reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{6,20}$/;
  if (!reg.test(password)) {
    flag = false;
  }
  return flag;
}

我们定义了一个checkPassword()函数,接收用户输入的密码作为参数,如果密码符合规定,则返回true,否则返回false。其中,正则表达式/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{6,20}$/表示密码至少包含一个大写字母、一个小写字母和一个数字,长度在6~20个字符之间。

3. 对确认密码进行校验

用户输入的确认密码应该与用户输入的密码一致。具体代码如下:

function checkConfirmPassword(password, confirmPassword) {
  if (password !== confirmPassword) {
    return false;
  }
  return true;
}

这里我们定义了一个checkConfirmPassword()函数,接收密码和确认密码两个参数,如果两者一致,则返回true,否则返回false

4. 对邮箱进行校验

对用户输入的邮箱进行校验,同样可以使用正则表达式进行判断。具体代码如下:

function checkEmail(email) {
  let flag = true;
  const reg = /^([a-zA-Z0-9]+[_|\-|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  if (!reg.test(email)) {
    flag = false;
  }
  return flag;
}

这里我们定义了一个checkEmail()函数,接收用户输入的邮箱作为参数,如果邮箱符合规定,则返回true,否则返回false。其中,正则表达式/^([a-zA-Z0-9]+[_|\-|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/表示一个合法的邮箱格式。

5. 对手机号码进行校验

对用户输入的手机号码进行校验,同样可以使用正则表达式进行判断。具体代码如下:

function checkPhone(phone) {
  let flag = true;
  const reg = /^1[3456789]\d{9}$/;
  if (!reg.test(phone)) {
    flag = false;
  }
  return flag;
}

这里我们定义了一个checkPhone()函数,接收用户输入的手机号码作为参数,如果手机号码符合规定,则返回true,否则返回false。其中,正则表达式/^1[3456789]\d{9}$/表示一个合法的中国大陆手机号。

三、示例说明

示例1

我们可以在页面中添加一个按钮,点击按钮时触发校验操作。具体代码如下:

<input type="button" value="注册" onclick="submitForm()">

<script>
function submitForm() {
  const username = document.getElementById('username').value;
  const password = document.getElementById('password').value;
  const confirmPassword = document.getElementById('confirm-password').value;
  const email = document.getElementById('email').value;
  const phone = document.getElementById('phone').value;

  if (!checkUsername(username)) {
    alert('请输入正确的用户名');
    return;
  }

  if (!checkPassword(password)) {
    alert('请输入正确的密码');
    return;
  }

  if (!checkConfirmPassword(password, confirmPassword)) {
    alert('两次输入的密码不一致');
    return;
  }

  if (!checkEmail(email)) {
    alert('请输入正确的邮箱');
    return;
  }

  if (!checkPhone(phone)) {
    alert('请输入正确的手机号码');
    return;
  }

  // 校验通过,提交表单
  document.forms[0].submit();
}
</script>

在这个示例中,我们通过使用document.getElementById()方法获取用户输入的注册信息,并在submitForm()函数中进行校验。如果校验不通过,弹出相应的提示信息;如果校验通过,则提交表单。

示例2

在另一个页面中,我们可以为每个输入框添加实时校验功能。具体代码如下:

<label for="username">用户名:</label>
<input type="text" id="username" onblur="checkUsernameCallback()"><br>
<span id="username-tip"></span><br>

<label for="password">密码:</label>
<input type="password" id="password" onblur="checkPasswordCallback()"><br>
<span id="password-tip"></span><br>

<label for="confirm-password">确认密码:</label>
<input type="password" id="confirm-password" onblur="checkConfirmPasswordCallback()"><br>
<span id="confirm-password-tip"></span><br>

<label for="email">邮箱:</label>
<input type="text" id="email" onblur="checkEmailCallback()"><br>
<span id="email-tip"></span><br>

<label for="phone">手机号码:</label>
<input type="text" id="phone" onblur="checkPhoneCallback()"><br>
<span id="phone-tip"></span><br>

<script>
function checkUsernameCallback() {
  const username = document.getElementById('username').value;
  const tip = document.getElementById('username-tip');
  if (checkUsername(username)) {
    tip.innerHTML = '√';
    tip.style.color = 'green';
  } else {
    tip.innerHTML = '× 用户名必须由字母、数字、下划线组成,长度在6~20个字符之间';
    tip.style.color = 'red';
  }
}

function checkPasswordCallback() {
  const password = document.getElementById('password').value;
  const tip = document.getElementById('password-tip');
  if (checkPassword(password)) {
    tip.innerHTML = '√';
    tip.style.color = 'green';
  } else {
    tip.innerHTML = '× 密码至少包含一个大写字母、一个小写字母和一个数字,长度在6~20个字符之间';
    tip.style.color = 'red';
  }
}

function checkConfirmPasswordCallback() {
  const password = document.getElementById('password').value;
  const confirmPassword = document.getElementById('confirm-password').value;
  const tip = document.getElementById('confirm-password-tip');
  if (checkConfirmPassword(password, confirmPassword)) {
    tip.innerHTML = '√';
    tip.style.color = 'green';
  } else {
    tip.innerHTML = '× 密码和确认密码不一致';
    tip.style.color = 'red';
  }
}

function checkEmailCallback() {
  const email = document.getElementById('email').value;
  const tip = document.getElementById('email-tip');
  if (checkEmail(email)) {
    tip.innerHTML = '√';
    tip.style.color = 'green';
  } else {
    tip.innerHTML = '× 请输入正确的邮箱格式';
    tip.style.color = 'red';
  }
}

function checkPhoneCallback() {
  const phone = document.getElementById('phone').value;
  const tip = document.getElementById('phone-tip');
  if (checkPhone(phone)) {
    tip.innerHTML = '√';
    tip.style.color = 'green';
  } else {
    tip.innerHTML = '× 请输入正确的手机号码';
    tip.style.color = 'red';
  }
}
</script>

在这个示例中,我们为每个输入框添加了裸函数,并使用onblur事件触发校验。每次校验后,我们将校验结果显示在每个输入框下方的提示框中。如果校验不通过,则将提示框的颜色设为红色,否则设为绿色。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js简单实现用户注册信息的校验代码 - Python技术站

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

相关文章

  • JS动态插入脚本和插入引用外部链接脚本的方法

    JS动态插入脚本和引用外部链接脚本是 Web 开发中常用的技术,可以使页面具有动态性和互动性。下面是详细的攻略。 动态插入脚本的方法 动态插入脚本可用于在 Web 页面中动态地加载并执行 JavaScript 代码。一般来说,动态插入脚本的步骤如下: 创建 script 标签并设置其 type 属性为 text/javascript。 将 JavaScrip…

    JavaScript 2023年5月27日
    00
  • JavaScript内置对象介绍

    JavaScript内置对象介绍 JavaScript是一种高级的、解释型语言,主要用于在Web页面中添加交互行为。它提供了许多内置对象,方便我们在代码中调用对应的方法,从而实现各种功能。本文将介绍JavaScript中一些常用的内置对象。 1. String对象 String对象用于处理字符串。它支持许多字符串操作方法,例如:indexOf、substri…

    JavaScript 2023年5月27日
    00
  • JavaScript内存管理介绍

    接下来我将分享关于JavaScript内存管理的完整攻略,包括内存分配、垃圾回收和常见的内存泄漏问题。 什么是JavaScript内存管理 JavaScript内存管理是指控制内存分配和垃圾回收的过程。JavaScript运行时环境会自动为每个脚本分配一定的内存,然后在代码执行期间将变量、函数和对象等存储在分配的内存空间中。当不再需要这些变量、函数和对象时,…

    JavaScript 2023年6月10日
    00
  • JavaScript的模块化:封装(闭包),继承(原型) 介绍

    JavaScript的模块化是一种将代码按照一定方式进行组织的方法。在JavaScript中,我们可以使用封装和继承实现模块化。 封装 封装是一种通过闭包实现的模块化方式,可以将一些数据和函数放在一个私有的作用域中,从而避免污染全局变量,同时将一些方法暴露出来,使之成为共有的API。 示例1 下面是一个简单的封装示例,通过IIFE(立即调用的函数表达式)创建…

    JavaScript 2023年6月10日
    00
  • JavaScript日期选择功能示例

    下面是详细讲解“JavaScript日期选择功能示例”的完整攻略: 1. 简介 JavaScript是一种流行的前端编程语言,它可以让网站的交互性更好。其中,日期选择功能是一个常见的功能,在表单上使用时,非常常用。在JavaScript中,我们可以使用Date对象来实现日期相关的功能。本文将演示如何构建一个简单的日期选择器。 2. Date对象 在JavaS…

    JavaScript 2023年5月27日
    00
  • JavaScript getter setter金字塔​​​​​​​

    JavaScript getter setter金字塔是一个针对JavaScript对象的编程技巧,用于在对象中定义getter和setter方法,这些方法可以设置和获取对象的属性值。这个技巧的特点是将getter和setter方法嵌套在一起,形成一个金字塔状的结构,以实现对对象属性的高度定制和控制。 以下是完整的JavaScript getter sett…

    JavaScript 2023年5月28日
    00
  • 浅析JavaScript访问对象属性和方法及区别

    我来详细讲解“浅析JavaScript访问对象属性和方法及区别”的完整攻略。下面是内容的组成部分: 前言 在JavaScript编程过程中,对象是一个非常重要的概念。对象允许我们组织和存储数据,并提供了一种访问和操作这些数据的机制。然而,访问和操作对象的属性和方法并不是一件简单的事情。本文将通过示例来浅析JavaScript访问对象属性和方法及它们的区别。 …

    JavaScript 2023年5月27日
    00
  • JavaScript编写推箱子游戏

    下面是JavaScript编写推箱子游戏的完整攻略: 1. 准备工作 编写推箱子游戏前需要准备的工作如下: 确认游戏规则和界面设计; 编写HTML页面,并引入所需的CSS样式; 编写JavaScript脚本文件,并在HTML中引入。 2. 游戏规则 推箱子游戏是一种益智类的游戏,玩家需要将箱子移动到指定位置才能完成游戏。游戏规则如下: 游戏地图上有多个目的地…

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