JS(JavaScript)数据校验 表单校验-案例


天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


今人不见古时月,今月曾经照古人。
古人今人若流水,共看明月皆如此。
——《把酒问月·故人贾淳令予问之》


文章目录

  • JS(JavaScript)数据校验 表单校验-案例
    • 1. 目的
    • 2. 实现
    • 3. 案例演示
      • 3.1 预览效果
      • 3.2 示例代码
      • 3.3 示例代码演示
      • 3.4 示例代码下载



JS(JavaScript)数据校验 表单校验-案例

1. 目的

客户端表单校验的目的
保证输入的数据符合要求
减轻服务器的压力

2. 实现

通过onsubmit事件绑定回调函数,判断表单数据是否符合要求
不符合要求则返回false
符合要求则返回true

3. 案例演示

实现一个用户登录界面,在填写的个人信息中对用户名密码手机号邮箱进行校验,最终提交前再次校验,所有校验条件通过方可提交表单

3.1 预览效果

案例最终结果界面展示
在这里插入图片描述

3.2 示例代码

示例代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>数据校验-表单校验(这不是一个很成功的案例,仅供参考)</title><style>table tr td:first-child{text-align: right;}.error{font-style: italic;font-size: 10px;color: red;}.ok{font-style: italic;font-size: 10px;color: green;}</style><script>// 特别注意,在vscode中写正则表达式的规则时,在使用/pattern/的方式时内容不需要双斜杠,正常写即可,在使用new RegExp()创建参数时,需要将参数都以双斜杠填写// 校验用户名function checkUsername(){var username = $("username").value;// 校验用户名的正则表达式规则:用户名只能由数字、字母、下划线、中文组成,且只能以数字或字母开头和结尾,长度范围为[6-10]var regUsername = /^[\da-z][\u4E00-\u9FA5\w]{4,8}[\da-z]$/i;// 解析上面的正则规则:^以什么开始,\d表示数字0-9,a-z表示字母,\u4E00-\u9FA5表示中文,\w表示数字、字母、下划线,{4,8}表示中间的字符最少4位最多8位,$以什么结束,i表示忽略大小写if(regUsername.test(username)){//如果校验通过,则将名称后的标签改为绿色的ok$("usernamePrompt").innerText = "ok"; $("usernamePrompt").className = "ok";return true;}else{//如果校验未通过,则将名称后的标签改为红色提示内容$("usernamePrompt").innerText = "用户名只能包含数字、字母、下划线、中文,且只能以数字或字母开头或者结尾,且长度为6-10位"$("usernamePrompt").className = "error";return false;}}// 校验密码function checkPassword(){var password = $("password").value;// 校验密码的正则表达式规则:密码只能由数字、字母、下划线组成,长度范围为[6-10]var regPassword = /^[\da-z]{6,10}$/i;// 解析上面的正则规则:^以什么开始,\d表示数字0-9,a-z表示字母,{6,10}表示密码长度6-8位,$以什么结束,i表示忽略大小写if(regPassword.test(password)){//如果校验通过,则将密码后的标签改为绿色的ok$("passwordPrompt").innerText = "ok";$("passwordPrompt").className = "ok";return true;}else{//如果校验未通过,则将密码后的标签改为红色提示内容$("passwordPrompt").innerText = "密码只能包含数字、字母、下划线,且长度为6-10位"$("passwordPrompt").className = "error";return false;}}// console.log(checkPassword());// 再次确认密码function checkPassword2(){var password = $("password").value;var password2 = $("password2").value;if(password==password2){$("password2Prompt").innerText = "ok";$("password2Prompt").className = "ok";return true;}else{$("password2Prompt").innerText = "密码不正确,请重新确认";$("password2Prompt").className = "error";return false;}}// 校验手机号function checkPhone(){var phone = $("phone").value;// 身份证的校验规则// var regPhone = /[1-9]\d{14}(\d{2}[\dX])?/i;// 手机号的校验规则,以1开头,第二位为3、5、6、7、8、9var regPhone = /^1[356789]\d{9}/;// 解析上面的正则规则:^以什么开始,\d表示数字0-9,{9}表示后面的数字为9位,i表示忽略大小写if(regPhone.test(phone)){//如果校验通过,则将手机号后的标签改为绿色的ok$("phonePrompt").innerText = "ok";$("phonePrompt").className = "ok";return true;}else{//如果校验未通过,则将手机号后的标签改为红色提示内容$("phonePrompt").innerText = "手机号以1开头,第二位为3,5,7,8,9,共十一位";$("phonePrompt").className = "error";return false;}}// 校验邮箱function checkEmail(){var email = $("email").value;// 校验密码的正则表达式规则:邮箱以字母、数字或下划线开头,@然后字母数字下划线,然后以点.加字母结尾var regEmail = /^\w+@\w+(\.[a-z]{2,3}){1,2}$/;// 解析上面的正则规则:^以什么开始,\d表示数字0-9,a-z表示字母,{6,10}表示密码长度6-8位,$以什么结束,i表示忽略大小写if(regEmail.test(email)){//如果校验通过,则将名称后的标签改为绿色的ok$("emailPrompt").innerText = "ok";$("emailPrompt").className = "ok";return true;}else{//如果校验未通过,则将名称后的标签改为红色提示内容$("emailPrompt").innerText = "邮箱格式为数字字母下划线开头,@后加数字字母下划线,然后以.后加字母结尾"$("emailPrompt").className = "error";return false;}}// 提交的校验,所有输入都没问题时,方可提交成功function onsubmit(){var b_username = checkUsername();console.log("username: ",b_username);var b_password = checkPassword();console.log("password: ",b_password);var b_password2 = checkPassword2();console.log("password2: ",b_password2);var b_phone = checkPhone();console.log("phone: ",b_phone);var b_email = checkEmail();console.log("email: ",b_email);if(b_username&&b_password&&b_password2&&b_phone&&b_email){return true;}else{return false;}console.log("all: ",b_username&&b_password&&b_password2&&b_phone&&b_email);// return checkUsername()&&checkPassword()&&checkPassword2()&&checkPhone()&&checkEmail();}function $(id){return document.getElementById(id);}</script>
</head>
<body><h2>用户登录</h2><form action="form_test.html" method="get" onsubmit="return onsubmit()"><!-- 一个表格,4个tr行 每个tr里面2个td列的快速写法 --><!-- table>(tr>td*2)*4 --><table><tr><td>用户名:</td><td><input type="text" name="username" id="username" placeholder="请输入用户名" onblur="checkUsername()"><span id="usernamePrompt"></span></td></tr><tr><td>密码:</td><td><input type="password" name="password" id="password" placeholder="请输入密码" onblur="checkPassword()"><span id="passwordPrompt"></span></td></tr><tr><td>确认密码:</td><td><input type="password" name="password2" id="password2" placeholder="请再次输入密码" onblur="checkPassword2()"><span id="password2Prompt"></span></td></tr><tr><td>出生日期:</td><td><input type="date" name="birthday" id="birthday" placeholder="请输入出生日期"></td></tr><tr><td>手机号:</td><td><input type="" name="phone" id="phone" placeholder="请输入手机号" onblur="checkPhone()"><span id="phonePrompt"></span></td></tr><tr><td>邮箱:</td><td><input type="email" name="email" id="email" placeholder="请输入邮箱" onblur="checkEmail()"><span id="emailPrompt"></span></td></tr><tr><td colspan="2"><br><input type="submit" value="注册" onclick="onsubmit()"><input type="reset" value="重置"></td></tr></table></form></body>
</html>

3.3 示例代码演示

浏览器打开页面后的效果如下
在这里插入图片描述
根据提示输入信息,提交进行校验

3.4 示例代码下载

案例示例代码已上传CSDN
下载地址:JavaScript 数据校验 用户登录 示例代码


感谢阅读,祝君暴富!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Rust入门】生成随机数

文章目录 前言随机数库rand添加rand库到我们的工程生成一个随机数示例代码 总结 前言 在编程中&#xff0c;生成随机数是一种常见的需求&#xff0c;无论是用于数据分析、游戏开发还是模拟实验。Rust提供了强大的库来帮助我们生成随机数。在这篇文章中&#xff0c;我们将通过一…

顺序表--续(C语言详细版)

2.9 在指定位置之前插入数据 // 在指定位置之前插入数据 void SLInsert(SL* ps, int pos, SLDataType x); 步骤&#xff1a; ① 程序开始前&#xff0c;我们要断言一下&#xff0c;确保指针是有效的&#xff0c;不是NULL&#xff1b; ② 我们还要断言一下&#xff0c;指定的…

ctfshow sql注入 web234--web241

web234 $sql "update ctfshow_user set pass {$password} where username {$username};";这里被过滤了&#xff0c;所以我们用\转义使得变为普通字符 $sql "update ctfshow_user set pass \ where username {$username};";那么这里的话 pass\ where…

libtorch+torchvision windows编译

libtorch建议直接采用官方的预编译版本,对应好torchvision版本做编译。 1. libtorch预编译版本下载 libtorch官方下载地址 Pybind11编译 git clone https://github.com/pybind/pybind11.git cd pybind11 mkdir build (base) PS E:\project\pybind11-2.13.1> cd .\build…

小程序-<web-view>嵌套H5页面支付功能

背景&#xff1a;小程序未发布前&#xff0c;公司使用vue框架搭建了管理系统&#xff0c;为了减少开发成本&#xff0c;微信提供了web-view来帮助已有系统能在小程序上发布&#xff0c;详见web-view | 微信开放文档。因公司一直未打通嵌套H5小程序的支付功能&#xff0c;导致用…

AIGC对设计行业的影响与启发:AIGC设计能替代真正的设计师吗?

随着科技的飞速发展&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;技术在设计行业的应用日益广泛&#xff0c;引发了广泛的讨论和关注。AIGC以其高效、多样化的生成能力&#xff0c;为设计行业带来了前所未有的变革。然而&#xff0c;关于AIGC是否能替代真正的设计…

开源模型应用落地-FastAPI-助力模型交互-WebSocket篇(一)

一、前言 使用 FastAPI 可以帮助我们更简单高效地部署 AI 交互业务。FastAPI 提供了快速构建 API 的能力,开发者可以轻松地定义模型需要的输入和输出格式,并编写好相应的业务逻辑。 FastAPI 的异步高性能架构,可以有效支持大量并发的预测请求,为用户提供流畅的交互体验。此外,F…

Python 生成Md文件带超链 和 PDF文件 带分页显示内容

software.md # -*- coding: utf-8 -*- import os f open("software.md", "w", encoding"utf-8") f.write(内部测试版2024 MD版\n) for root, dirs, files in os.walk(path): dax os.path.basename(root)if dax "":print("空白…

从 ClickHouse 到 Apache Doris:快成物流的数智化货运应用实践

导读&#xff1a;随着快成物流的大宗商品产业链的不断发展&#xff0c;货运轨迹规划和实时数据分析的需求日益迫切&#xff0c;为了保障数据报表更新、用户画像圈选与物流轨迹实时更新等大数据核心系统性能&#xff0c;快成物流引入 Apache Doris 实时数仓升级了大数据算法平台…

这才叫必备软件推荐 你不能不知道的mac软件 Mac上有什么实用的必备软件 Mac常用必备软件推荐 一些好用的Mac软件

Mac OS是一个类Unix系统&#xff0c;内置终端Shell&#xff0c;这使得它天生就适合为程序员、开发者、设计者所用。不得不说苹果对用户体验的追求已经到了极致。遂开本篇&#xff0c;由于应用众多&#xff0c;一锅炖不下&#xff0c;故打算做一个系列。 下面为大家一一介绍一些…

基于物品的协同过滤算法

预估用过户对候选物品的兴趣 计算物品相似度 召回通道 快速做召回条件

Unity2D - 状态机(State Machine)详解

1. 状态机概述 在角色的生成中&#xff0c;由于事件的不同&#xff0c;动作的不同&#xff0c;角色会处于不同的状态中。例如对战冒险游戏&#xff0c;面临Boss的攻击&#xff0c;角色会受到例如中毒&#xff0c;恐惧等Debuff效果&#xff0c;若单纯的在一个脚本中使用if等语句…

绝地求生PUBG怎么领取补偿G币 补偿G币什么时候到账

绝地求生这款大逃杀射击游戏相信大家都不陌生&#xff0c;在之前的新版本NewJeans联动中&#xff0c;由于一些官方设定的错误&#xff0c;导致在开典藏箱的时候出现了一些问题&#xff0c;官方也推出了相应的补偿措施&#xff0c;比如退还G币&#xff0c;回收典藏箱子开出来的东…

Linux之Uboot简介和移植

uboot简介 uboot 的全称是 Universal Boot Loader&#xff0c;uboot 是一个遵循 GPL 协议的开源软件&#xff0c;uboot是一个裸机代码&#xff0c;可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB 等高级功能。 也就是说&#xff0c;可以在没有系统的情况…

绝区零国际服怎么下载 绝区零国际服下载教程

绝区零即将上线&#xff0c;每位玩家都能在这里开启全新的时空冒险之旅&#xff0c;主要玩法分为以剧情和副本为主的核心玩法、以刷材料为主的养成副本&#xff0c;以及日常任务为主&#xff0c;在以往的手游中&#xff0c;玩家进入某项玩法只需要从游戏界面调取菜单即可&#…

如何用简单的html,css,js写出一个带有背景层的删除弹出框

虽然每次项目都是主要写后端&#xff0c;但是有时候前端的样式太丑了&#xff0c;也有点看不下去。弹出框是项目中用的比较多的&#xff0c;比如删除&#xff0c;修改或者添加什么的&#xff0c;都需要一个弹出框。 所以这里简单记录一下&#xff0c;应该如何实现。实现效果如…

软考《信息系统运行管理员》-2.3信息系统运维的外包

2.3信息系统运维的外包 信息系统运维外包的概念/模式 也称为信息系统代维。是指信息系统使用单位将全部或一部分的信息系统维护服务工作&#xff0c;按照规定的维护服务要求&#xff0c;外包委托给专业公司管理。 完全外包运维模式部分外包模式 信息系统运维外包的好处 有利…

offer150-16:数值的整数次方

题目描述:实现函数double Power(double base,int exponent),求base 的exponent次方。不得使用库函数&#xff0c;同时不需要考虑大数问题。 分析&#xff0c;题目要求实现库函数pow(),由于不需要考虑大数问题&#xff0c;不必担心溢出&#xff0c;那么就需要对输入的各种情况进…

预测未来 | Matlab实现HMM隐马尔科夫时间序列预测未来

预测未来 | Matlab实现HMM隐马尔科夫时间序列预测未来 目录 预测未来 | Matlab实现HMM隐马尔科夫时间序列预测未来效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.预测未来 | Matlab实现HMM隐马尔科夫时间序列预测未来 2.运行环境为Matlab2023b及以上&#xff1b; 3…

路径跟踪算法---Stanley Method实现

文章目录 前言一、Stanley原理介绍二、主要代码实现三、效果 前言 Stanley Controller也是基于几何追踪的轨迹跟踪控制器&#xff0c;和Pure Pursuit不同的是&#xff0c;其基于前轮中心点为参考点进行控制&#xff0c;没有预瞄距离&#xff0c;以前轮中心点与最近参考轨迹点进…