备赛蓝桥杯之第十六届模拟赛2期职业院校组第四题:地址识别

news2025/3/30 20:21:27

提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议


由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题,在这里只提供部分原题代码

本题目为:备赛蓝桥杯之第十六届模拟赛2期职业院校组第四题:地址识别


题目:

经过运行环境运行之后的效果如下:

本题需要做的代码如下:

/**
 * @description 识别粘贴的联系人信息
 * @param {String} text: 联系人信息
 * @return {Object} 识别出来的信息对象,如 { name: "张三", phone: 123456, address: "南京路1234号" }
*/
function parseContactInfo(text) {
    // TODO: 请补充代码

}

 本题目标如下:

请完善 js/index.js 中 parseContactInfo 函数的 TODO 部分代码,实现以下目标:

在地址输入框下方的文本域内(id="info")输入数据后,点击识别按钮(id="transferBtn")时,对输入的数据进行提取parseContactInfo 函数接收一个字符串,为信息输入框(id="info")输入的数据(只会包含姓名、电话、地址三部分信息,各部分信息之间以空格分隔),要返回一个对象,对象中包含提取的信息,例如输入的数据为:

15277775555 重庆市渝中区解放碑步行街99号 刘十二

返回的数据为:

{
    name: "刘十二",
    phone: 15277775555,
    address: "重庆市渝中区解放碑步行街99号"
}

  • name 表示联系人姓名。
  • phone 表示联系人电话。
  • address 表示联系人地址。

每个信息的提取规则如下:

  • name2-4 位的中文字符。
  • phone11 位的数字。
  • address:中文字符开头且由中文、英文、数字的组成的至少 4 位的字符。

提示:

  • 匹配中文的正则为:[\u4e00-\u9fa5]

需要注意的是,输入的各部分信息的顺序可能是不一致的,例如输入的数据为:

周八 15277775555 西湖7号,

或者

西湖7号 15012345678 周八 

返回的数据也为:

{
    name: "周八",
    phone: 15012345678,
    address: "西湖7号"
}

说人话:

        其实就是将输入的字符分割出来对应到结果上去,期间输入的字符还有可能不单纯的是按照顺序来的 


本题作者想说

答案:

function parseContactInfo(text) {
    // TODO: 请补充代码
    let resultObj = {}
    let newText = text.split(" ")
    let findNameRuler = /^[\u4e00-\u9fa5]{2,4}$/
    let nameIndex = newText.findIndex((item) => findNameRuler.test(item));
    resultObj.name = newText[nameIndex]
    newText.splice(nameIndex , 1)
    let findPhoneRuler = /^\d{11}$/
    let phoIndex = newText.findIndex((item) => findPhoneRuler.test(item))
    resultObj.phone = newText[phoIndex]
    newText.splice(phoIndex , 1)
    resultObj.address = newText[0]
    return resultObj
}

作者自我解释版:

function parseContactInfo(text) {
    // TODO: 请补充代码

    // 定义一个结果,用于储存结果
    let resultObj = {}

    // 将原文本进行解构,并把所有的字符结构成一个数组
    // 相比[...text]来说,[...text]只是把所有的字符都一一拆出来成为数组项,如[0:"重",1:"庆"...]
    // 而对于split(" ")则是把原文本根据“ ”拆成三个大的数组项,这样便省去了很多麻烦,如[0:"110",1:"警察",2:"警察局"]
    let newText = text.split(" ")

    // 用正则表达式表示找到中文的正则表达式,并限制2-4个字符,以区分是地址还是姓名
    // /^:表示匹配字符串的开始。
    // [\u4e00-\u9fa5]:这是一个字符类
    // {2,4}:表示前面的字符类(即汉字)至少出现2次,最多出现4次。
    // $/:表示匹配字符串的结束。
    let findNameRuler = /^[\u4e00-\u9fa5]{2,4}$/
    // 通过findIndex属性,将在解构后的数组中符合上述寻找名字的正则表达式的数组项
    // 返回一个数字,即在结构后数组中符合正则表达式的下标
    let nameIndex = newText.findIndex((item) => findNameRuler.test(item));
    // 将结构后的数组中第符合正则表达式的下标个数组项赋值给结果数组
    resultObj.name = newText[nameIndex]
    // 将已经找到的数组删掉!避免下一次寻找时重复
    newText.splice(nameIndex , 1)

    // 方法类似,找到11位电话号码
    let findPhoneRuler = /^\d{11}$/
    let phoIndex = newText.findIndex((item) => findPhoneRuler.test(item))
    resultObj.phone = newText[phoIndex]
    newText.splice(phoIndex , 1)

    // 将最后剩下的一个,只有地址没有找到,便直接赋值给结果数组即可
    resultObj.address = newText[0]

    // 返回结果数组
    return resultObj

}

感谢观看此篇文章,谢谢大家的支持,本片文章只是我自己学习的历程,有些写的不好地方欢迎大家交流改动。

长路漫漫,我们还需努力!

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

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

相关文章

多模态自动驾驶混合渲染HRMAD:将NeRF和3DGS进行感知验证和端到端AD测试

基于3DGS和NeRF的三维重建技术在过去的一年中取得了快速的进步,动态模型也变得越来越普遍,然而这些模型仅限于处理原始轨迹域内的对象。 HRMAD作为一种混合方案,将传统的基于网格的动态三维神经重建和物理渲染优势结合,支持在任意…

mac m3 pro 部署 stable diffusion webui

什么是Stable Diffusion WebUI ? Stable Diffusion WebUI 是一个基于Stable Diffusion模型开发的图形用户界面(GUI)工具。通过这个工具,我们可以很方便的基于提示词,描述一段文本来指导模型生成相应的图像。相比较通过…

多层感知机实现

激活函数 非线性 ReLU函数 修正线性单元 rectified linear unit relu(x)max(0,x) relu的导数: sigmoid函数 s i g m o i d ( x ) 1 1 e − x sigmoid(x)\frac{1}{1e^{-x}} sigmoid(x)1e−x1​ 是一个早期的激活函数 缺点是: 幂运算相对耗时&…

Linux笔记---动静态库(使用篇)

目录 1. 库的概念 2. 静态库(Static Libraries) 2.1 静态库的制作 2.2 静态库的使用 2.2.1 显式指定库文件及头文件路径 2.2.2 将库文件安装到系统目录 2.2.3 将头文件安装到系统目录 3. 动态库 3.1 动态库的制作 3.2 动态库的使用 3.2.1 显式…

手机销售终端MPR+LTC项目项目总体方案P183(183页PPT)(文末有下载方式)

资料解读:手机销售终端 MPRLTC 项目项目总体方案 详细资料请看本解读文章的最后内容。在当今竞争激烈的市场环境下,企业的销售模式和流程对于其发展起着至关重要的作用。华为终端正处于销售模式转型的关键时期,波士顿 - 华为销售终端 MPRLTC …

【Python LeetCode Patterns】刷力扣,15 个学习模式总结

1. 前缀和(Prefix Sum)—— 查询子数组中元素和303. 区域和检索 - 数组不可变304. 二维区域和检索 - 矩阵不可变 2. 双指针(Two Pointers)—— 移向彼此或远离彼此3. 滑动窗口(Sliding Window)—— 找到满足…

蓝桥杯单片机刷题——串口发送显示

设计要求 通过串口接收字符控制数码管的显示,PC端发送字符A,数码管显示A,发送其它非法字符时,数码管显示E。 数码管显示格式如下: 备注: 单片机IRC振荡器频率设置为12MHz。 串口通信波特率:…

探索抓包利器ProxyPin,实现手机APP请求抓包,支持https请求

以下是ProxyPin的简单介绍: - ProxyPin是一个开源免费HTTP(S)流量捕获神器,支持 Windows、Mac、Android、IOS、Linux 全平台系统- 可以使用它来拦截、检查并重写HTTP(S)流量,支持捕获各种应用的网络请求。ProxyPin基于Flutter开发&#xff0…

文献学习:单细胞+临床+模型构建 | 一篇Molecular Cancer文献如何完整解读CDK4/6i耐药机制

👋 欢迎关注我的生信学习专栏~ 如果觉得文章有帮助,别忘了点赞、关注、评论! 📌一、研究背景:CDK4/6i 是不是“万无一失”? HR/HER2- 是最常见的乳腺癌亚型,占比超过70%。近年来,随…

网盘解析工具更新,解决了一些bug

解析工具v1.2.1版本更新,本次是小版本更新,修复了一些bug。 之前小伙伴反应的网盘进入文件后不能返回上一级,现在这个bug修复了,已经可以点击了。 点击资源后会回到资源那一级目录,操作上是方便了不少。 增加了检查自…

5种生成模型(VAE、GAN、AR、Flow 和 Diffusion)的对比梳理 + 易懂讲解 + 代码实现

目录 1 变分自编码器(VAE)​ 1.1 概念 1.2 训练损失 1.3 VAE 的实现 2 生成对抗网络(GAN)​ 2.1 概念 2.2 训练损失 a. 判别器的损失函数 b. 生成器的损失函数 c. 对抗训练的动态过程 2.3 GAN 的实现 3 自回归模型&am…

计算机期刊推荐 | 计算机-人工智能、信息系统、理论和算法、软件工程、网络系统、图形学和多媒体, 工程技术-制造, 数学-数学跨学科应用

Computers, Materials & Continua 学科领域: 计算机-人工智能、信息系统、理论和算法、软件工程、网络系统、图形学和多媒体, 工程技术-制造, 数学-数学跨学科应用 期刊类型: SCI/SSCI/AHCI 收录数据库: SCI(SCIE),EI,Scopus,知网(CNK…

【教学类-58-14】黑白三角拼图12——单页1页图。参考图1页6张(黑白、彩色)、板式(无圆点、黑圆点、白圆点)、宫格2-10、张数6张,适合集体操作)

背景需求: 基于以下两个代码,设计一个单页1页黑白三角、彩色三角(包含黑点、白点、无点)的代码。 【教学类-58-12】黑白三角拼图10(N张参考图1张操作卡多张彩色白块,适合个别化)-CSDN博客文章…

C++项目:高并发内存池_下

目录 8. thread cache回收内存 9. central cache回收内存 10. page cache回收内存 11. 大于256KB的内存申请和释放 11.1 申请 11.2 释放 12. 使用定长内存池脱离使用new 13. 释放对象时优化成不传对象大小 14. 多线程环境下对比malloc测试 15. 调试和复杂问题的调试技…

消息队列性能比拼: Kafka vs RabbitMQ

本内容是对知名性能评测博主 Anton Putra Kafka vs RabbitMQ Performance 内容的翻译与整理, 有适当删减, 相关数据和结论以原作结论为准。 简介 在本视频中,我们将首先比较 Apache Kafka 和传统的 RabbitMQ。然后,在第二轮测试中,会将 Kaf…

AP 场景架构设计(一) :OceanBase 读写分离策略解析

说明:本文内容对应的是 OceanBase 社区版,架构部分不涉及企业版的仲裁副本功能。OceanBase社区版和企业版的能力区别详见: 官网链接。 概述​ 当两种类型的业务共同运行在同一个数据库集群上时,这对数据库的配置等条件提出了较高…

Java 大视界 -- Java 大数据在智能金融区块链跨境支付与结算中的应用(154)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

手把手教你在linux服务器部署deepseek,打造专属自己的数据库知识库

第一步:安装Ollama 打开官方网址:https://ollama.com/download/linux 下载Ollama linux版本 复制命令到linux操作系统执行 [rootpostgresql ~]# curl -fsSL https://ollama.com/install.sh | sh在Service中增加下面两行 [rootlocalhost ~]# vi /etc/…

C++ 继承:面向对象编程的核心概念(一)

文章目录 引言1. 继承的基本知识1.1 继承的关键词的区别1.2 继承类模版 2. 基类和派生类间的转换3. 继承中的作用域4. 派生类的默认成员函数4.1 默认成员函数的规则4.2 自己实现成员函数4.3 实现一个不能被继承的基类(基本不用) 引言 在C中,…

蓝桥杯 临时抱佛脚 之 二分答案法与相关题目

二分答案法(利用二分法查找区间的左右端点) (1)估计 最终答案可能得范围 是什么 (2)分析 问题的答案 和 给定条件 之间的单调性,大部分时候只需要用到 自然智慧 (3)建…