表单验证和正则表达式

server/2025/3/3 6:10:38/

表单验证

表单:收集用户信息,并把信息发送给服务器程序进行处理

what

验证数据的格式,将符合标准数据格式要求的数据,发送给后台。

对用户的输入做格式校验,确保能够发送到后台服务器的数据一定是正确的。降低服务器的压力,提高用户体验

效果实现

  • 得焦事件

    ​ 用户输入提示

  • 失焦事件

    ​ 用户输入是否为空

表单验证的特效和页面布局息息相关

  • 作用:①在用户输入时,给与用户各种输入的反馈提示

     ②真正的控制 表单是否能够进行提交
    

字符串的操作 String 对象

string对象专门用来处理字符串

  • charAt()——返回在指定下标位置的字符
 <script>var aa='1254你好'var bb='4567哈哈'//输入下标获取改下标的值console.log(aa.charAt(4));//结果:你</script>
  • concat()——连接两个或更多字符串,并返回新的字符串
<script>var aa='1254你好'var bb='4567哈哈'var cc='789'//连接两个字符串,并返回一个新的字符串console.log(aa.concat(bb));console.log(aa.concat(cc));
//结果:1254你好4567哈哈// 1254你好789</script>
  • indexOf()——返回某个指定的子字符串值在字符串中首次出现的位置
  • includes()——查找字符串中是否包含指定的子字符串。是返回true,否则false
  • lastIndexOf()——从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置
 <script>var aa='1254你好'var bb='4567哈哈'var cc='789'var dd='12345654123145532'//查找特定字符串在整个字符串中首次出现的位置console.log(dd.indexOf('5'));//查找特定字符串在整个字符串中最后出现的位置,从后向前搜索console.log(dd.lastIndexOf('5'));//查找字符串中是否包含特殊字符串console.log(dd.includes('565'));console.log(dd.includes('你好'));
//结果: 4  14 true false</script>
  • replace()——用于在字符串中用一些字符替换另一些字符,或替换一个正则表达式匹配的字符串
  • slice()——提取字符串的片段,并在新的字符串中返回被提取的部分
  • split()——把字符串分割为字符串数组
<script>var aa='1254你好'var bb='4567哈哈'var cc='789'var dd='12345654123145532'//将特殊字符串替换到字符串中console.log(bb.replace('哈哈','你好'));console.log(bb);var ee=bb.replace('哈哈','你好')console.log(ee);//提取字符串,并返回被提取后的新的字符串console.log(dd.slice(4,11));console.log(dd);//var ff=dd.split('5654123');var ff=dd.slice(4,11);console.log(ff);//将字符串转换成数组console.log(bb.split(''));console.log(bb);var gg=bb.split('67');console.log(gg);
//结果:4567你好//4567哈哈
// 4567你好
// 5654123
// 12345654123145532
// 5654123
// ['4','5','6','7','哈','哈']
// 4567哈哈
// (2) ['45', '哈哈']</script>
  • startsWith()——查看字符串是否以指定的字符串开头
  • endsWith()——查看字符串是否以指定的字符串结尾
<script>var aa='1254你好'var bb='4567哈哈'var cc='789'var dd='12345654123145532'//字符串是否以特定字符串开头console.log(bb.startsWith('45'));console.log(bb.startsWith('5'));//字符串是否以特定字符串结尾console.log(bb.endsWith('哈哈'));console.log(bb.endsWith('5'));//结果:true false true false</script>
  • substr(起始索引,提取的长度)——从起始索引号提取字符串中指定数目的字符
  • substring()——提取字符串中两个指定的索引号直接的字符前闭后开
<script>var aa='1254你好'var bb='4567哈哈'var cc='789'var dd='12345654123145532'//起始位置,提取长度 提取字符串console.log(dd.substr(2,5));//起始位置,结束位置 提取字符串//结果:34565  345</script>console.log(dd.substring(2,5));
  • toLowerCase()——把字符串转换成小写
  • toUpperCase()——把字符串转换成大写
<script>var aa='1254你好'var bb='4567哈哈'var cc='789'var dd='12345654123145532'var hh='BCNSMDLKGAL'var ii='zcffaet'//把字符串转换成小写console.log(hh.toLowerCase());//把字符串转换成大写console.log(ii.toUpperCase());
//结果:bcnsmdlkgal// ZCFFAET</script>
  • trim()——去除字符串两边的空格
  • toString()——返回一个字符串
 <script>var aa='1254你好'var bb='4567哈哈'var cc='789'var dd='12345654123145532'var hh='BCNSMDLKGAL'var ii='zcffaet'var jj=' jssfj  'var kk=parseInt(12346);//去除字符串两边的空格console.log(jj.trim());console.log(jj);//转换成字符串console.log(kk.toString());console.log(kk);</script>

正则表达式

正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本

why

有一些比较复杂的校验使用字符串提供的方法不能很好的校验,

所以使用正则进行一些复杂校验

使用

  • 创建正则表达式

    • 字面量创建 (常用)

      let reg = /表达式/;

    • 构造函数

      let reg=new RegExp(‘a,c’);

有很多具有特殊函数的符号,学会各种符号所表示的含义

  • 使用正则表达式

    test():检索字符串中是否存在指定的值。存在返回true, 不存在返回false

正则表达式常用字符含义

  • \:转义字符,让具有特殊作用的符号,失去特殊作用,只保留 本身的符号

  • ^ :匹配行首,以XXX开头

  • [ ] :表示范围区间,只表示一个字符的范围空间

[0-9][a-z][A-Z][0-9a-zA-Z][0-9|A-Z|a-z]
  • * :匹配前面的子表达式 任意次
  • + :匹配前面的子表达式 至少1次
  • ? :匹配前面的子表达式 0或1次
  • [^ ]:取反
[^0-9]:任意的非数字字符
[^a-z0-9A-Z]:除数字,字母之外的任意字符
  • | :或者
  • { }:位数
{3}:3位
{3,}:至少3位
{3,6}:3至6位
  • . :匹配任意的单个字符
  • $:匹配末尾,以XXX结尾
  • g:全局匹配
  • i:不区分大小写
  • \w:任何单字字符
等价于:[a-z0-9A-Z]
  • \W:任何非单字字符
等价于:[^a-z0-9A-Z]
  • \s:任何空白符
等价于:[\t\n\r\f\v]
  • \S:任何非空白符
等价于:[^\t\n\r\f\v]
  • \d:任何数字
等价于:[0-9]
  • \D:除了数字之外的任何字符
等价于:[^0-9]

http://www.ppmy.cn/server/171989.html

相关文章

《Llama 3.2-Vision:开启多模态AI新时代》:此文为AI自动生成

Llama 3.2-Vision 是什么 在人工智能的快速发展进程中&#xff0c;多模态技术成为了推动行业变革的关键力量。Llama 3.2-Vision 作为 Meta 公司推出的新一代多模态大语言模型&#xff0c;以其卓越的视觉与语言融合能力&#xff0c;为 AI 领域带来了全新的突破。它的出现&#…

openEuler环境下GlusterFS分布式存储集群部署指南

1.环境准备&#xff1a; os&#xff1a;openEuler 22.03 主机名 IP地址 主机用途 Rocky8192.168.121.160客户端 open-Euler1192.168.121.150节点1&#xff0c;提供两块6G硬盘open-Euler4192.168.121.153节点2&#xff0c;提供两块6G硬盘open-Euler5192.168.121.154 …

windows系统备份mysql数据库文件和备份neo4j数据库文件

1.备份mysql数据库文件 mysql -u [用户名] -p [目标数据库名] < [导入文件路径].sql参数说明&#xff1a; [用户名]&#xff1a;连接 MySQL 数据库时使用的用户名。一般默认是root [目标数据库名]&#xff1a;要备份的数据库名称 [导入文件路径]&#xff1a;保存 SQL 文件的…

【沙漠之心:揭秘尘封奇迹的终极之旅】

在地球的边缘,横亘着一片浩瀚无垠的沙漠,它既是生命的绝域,亦是奇迹孕育的秘境。这片广袤的沙漠,以其神秘莫测的面貌,自古以来便吸引着无数探险家、旅行者和梦想家的目光。它既是生命的禁区,让无数生命在这片不毛之地中消逝;同时,它也是奇迹的摇篮,孕育着无数未被发现…

springboot之集成Elasticsearch

目录 二、Elasticsearch 是什么&#xff1f;三、Elasticsearch 安装四、Springboot 集成 Elasticsearch 的方式五、创建项目集成 Elasticsearch 2.创建 Spring Initializr 项目 es &#xff08;3&#xff09;.新建实体类 User&#xff08;4&#xff09;.新建 dao 接口类 UserR…

DeepSeek 助力 Vue3 开发:打造丝滑的弹性布局(Flexbox)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

Difyにboto3を変更したカスタムDockerイメージの構築手順

Difyにboto3を変更したカスタムDockerイメージの構築手順 はじめに1. Dockerfileの作成2. Dockerイメージのビルド3. docker-compose.yamlの更新変更点&#xff1a; 4. コンテナの再起動注意事項まとめ はじめに DifyのDockerイメージに特定バージョンのboto3を変更する手順を…

FastExcel与Reactor响应式编程深度集成技术解析

一、技术融合背景与核心价值 在2025年企业级应用开发中&#xff0c;大规模异步Excel处理与响应式系统架构的结合已成为技术刚需。FastExcel与Reactor的整合方案&#xff0c;通过以下技术协同实现突破性性能&#xff1a; 内存效率革命&#xff1a;FastExcel的流式字节操作与Re…