牛客JS题(三)文件扩展名

注释很详细,直接上代码

涉及知识点:

  1. 正则表达式
  2. 可选链操作符

题干:

在这里插入图片描述

我的答案

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /></head><body><script>/*** 可能会有小友觉得这题很简单,别急,是很简单但可以优化,* 我们的目的是用更少的代码写更清晰且健壮的程序* 首先先分析一下这个题,我们需要取到最后一个.及后面的字符串,* 想想我们需要处理的极端情况:* 1. 输入为空字符串 -需返回空字符串* 2. 输入为. -需返回空字符串* 3. 输入为.txt -需返回.txt* 4. 输入为index.kk.js -需返回.js* * 条件这么多自然是正则匹配最方便了,下面我们来解析一下这个正则表达式* ()捕获,捕获内容的下标是从1开始,这里其实也可以不需要捕获,就当温习知识点了* \.表示匹配.,.是特殊字符,需要转义* [^.]表示匹配除了.之外的字符,+表示匹配一次或多次,为什么需用+,这是为了满足第二种情况,.后面肯定需要接内容的* $表示匹配字符串的结尾,这里可以解决第四种情况,我们需要的末尾符合条件的内容* * 万一啥也没匹配到,[1]必定报错的,难不成我们要将filename.match(regex)拿出来单独判断一下吗?* 这里我们可以使用?.(可选链操作符)来判断,当filename.match(regex)为undefined时,filename.match(regex)?.[1]是undefined而不是报错,* 当然这里提醒一下,牛客的判题环境不支持可选链操作符,别问问就是wa过了,但它的测例也就一个罢了,去掉.?随便过* 最后我们再加上个||不就完美解决了匹配不到的情况嘛,完美,撒花~*/const _getExFilename = (filename) => {// 补全代码const regex = /(\.[^.]+)$/;return filename.match(regex)?.[1]||'';}console.log(_getExFilename("index.html"));console.log(_getExFilename(".txt"));console.log(_getExFilename("index.kk.js"));//下面两个因为返回的是空字符串,所以加了个图标作为提示console.log("🫧"+_getExFilename("."));console.log("🎈"+_getExFilename(""));</script></body>
</html>

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

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

相关文章

快速上手,spring boot3整合task实现定时任务

在已经上线的项目中&#xff0c;定时任务是必不可少的。基于spring boot自动装配的原理&#xff0c;我们要集成task定时任务还是非常简单的。只需要简单的两步就可以实现。 1、创建一个spring boot项目&#xff0c;并在项目的启动类&#xff08;也不一定非要是启动类&#xff…

AI测试入门:认识AI大语言模型(LLM)

AI测试入门&#xff1a;认识AI大语言模型&#xff08;LLM&#xff09; 前言一、大语言模型的概述1. 什么是大语言模型&#xff1f;2. 大语言模型的历史发展 二、大语言模型的工作原理1. Transformer架构自注意力机制 2. 预训练与微调预训练微调 三、大语言模型的应用场景1. 文本…

LabVIEW 实现用户授权与管理多项测试项目

在使用 LabVIEW 开发测试软件时&#xff0c;用户授权和项目管理是一个重要的功能。为了确保系统安全性、灵活性和可扩展性&#xff0c;可以设计一个用户管理系统&#xff0c;允许管理员增加或减少用户的测试项目权限。以下是一个详细的实现方案&#xff0c;包括用户授权管理、项…

Modbus RTU协议 与 Modbus TCP/IP协议的区别

前面讲解Modbus协议时提到了多种协议类型&#xff0c;今天来讲讲Modbus RTU和Modbus TCP/IP协议的区别。 Modbus RTU和Modbus TCP/IP协议的本质都是Modbus协议&#xff0c;都是通过Modbus寄存器地址来交换数据的&#xff0c;那么它们之间有什么区别呢&#xff1f;今天我们从以…

buu做题(7)

[BJDCTF2020]Mark loves cat 开始的界面没啥东西, 看了下源码好像也没啥东西 用dirsearch扫描一下 有git 泄露 用工具githack下载源码 <?phpinclude flag.php;$yds "dog"; $is "cat"; $handsome yds;foreach($_POST as $x > $y){$$x $y; }f…

前端静态资源的动态访问

静态资源打包规则 Vite脚手架在打包代码的时候&#xff0c;会把源代码里对于静态资源的访问路径转换为打包后静态资源文件的路径。主要的区别是文件指纹&#xff0c;即打包后的文件会带上一个hash值&#xff0c;用于区分不同版本的文件。 文件指纹的作用 当前端项目更新之后&…

el7升级Apache修复漏洞

1、Apache安全漏洞 Apache HTTP Server拒绝服务漏洞&#xff08;CVE-2018-1303&#xff09;Apache HTTP Server 安全漏洞&#xff08;CVE-2018-17199&#xff09;Apache HTTP Server 内存破坏漏洞&#xff08;CVE-2017-9788&#xff09;Apache httpd 信息泄露漏洞&#xff08;C…

GNSS相关资料

常识 GNSS(二)&#xff0c;自动驾驶定位团队的“保护伞”&#xff1a;https://owwjm7oycuv.feishu.cn/docx/BAfsdC34zoN6htx4uUycbvknnub#CiWXdRZfWoqrzmxRptJcH7MYnug GNSS伪距差分和RTK&#xff1a;https://zhuanlan.zhihu.com/p/680687517 关于GNSS技术介绍&#xff08;一&…

江科大/江协科技 STM32学习笔记P6

文章目录 LED闪烁&LE流水&蜂鸣器一、操作STM32的GPIO步骤二、RCC库函数什么是AHB与APB&#xff1f; 三、GPIO库函数GPIO初始化选择IO接口工作方式 四、四种方法实现LED闪灯 LED闪烁&LE流水&蜂鸣器 一、操作STM32的GPIO步骤 1、使用RCC开启GPIO的时钟 2、使用…

CV Method:YOLOv10 vs YOLOv8

文章目录 前言一、介绍二、YOLOv8 and YOLOv10 Comparison1.模型结构YOLOv8&#xff1a;YOLOv10&#xff1a; 2. 推理和时延3. 检测表现4. 参数利用5. 关键比较 总结 前言 YOLOv10已经开源一段时间了&#xff0c;经过我实际使用测试&#xff0c;也确实性能更好一些&#xff0c…

静态IP地址在网络安全中的角色解析与实测分析

在这个网络边界日益模糊的时代&#xff0c;每一次点击、每一次数据传输都有着安全问题。作为网络安全体系中的基石&#xff0c;静态IP地址的角色显得尤为重要而复杂。今天&#xff0c;我们的测评团队将带您深入剖析静态IP地址在网络安全中的多重角色&#xff0c;并通过两家代理…

背单词工具(C++)

功能分析 生词本管理&#xff1a; 创建生词本文件&#xff1a;在构造函数中创建了“生词本.txt”“背词历史.log”“历史记录.txt”三个文件。添加单词&#xff1a;用户可以输入单词、词性和解释&#xff0c;将其添加到生词本中。查询所有单词&#xff1a;展示生词本中所有的单…

AWS免费层之后:了解和管理您的云服务成本

Amazon Web Services (AWS) 为新用户提供了12个月的免费层服务&#xff0c;这是许多人开始使用云服务的绝佳方式。但是&#xff0c;当这一年结束后&#xff0c;您的AWS使用会如何变化&#xff1f;我们九河云通过本文将探讨免费层结束后的AWS成本情况&#xff0c;以及如何有效管…

JavaScript(16)——定时器-间歇函数

开启定时器 setInterval(函数,间隔时间) 作用&#xff1a;每隔一段时间调用这个函数&#xff0c;时间单位是毫秒 例如&#xff1a;每一秒打印一个hello setInterval(function () { document.write(hello ) }, 1000) 注&#xff1a;如果是具名函数的话不能加小括号&#xf…

THC/THC.h: No such file or directory 问题原因及一系列解决方案

问题原因 出现THC/THC.h: No such file or directory 这个问题的原因主要是&#xff1a;pytorch在1.11版本之后&#xff0c;THC/THC.h就被移除了&#xff0c;所以出现这个问题的原因是因为pytorch版本太高的原因。所以&#xff0c;解决这个问题一个最直观的方法就是降版本&…

面试题:简单介绍一下快速失败和安全失败。简单介绍一下快速失败和安全失败和集合类的关联。

一. 简单介绍一下快速失败和安全失败 Java 中的快速失败&#xff08;Fast-fail&#xff09;和安全失败&#xff08;Safe-fail&#xff09;是两种异常处理机制&#xff0c;它们在处理程序运行过程中出现的错误或异常时有所不同。 1. 快速失败&#xff08;Fast-fail&#xff09…

【图像标签转换】XML转为TXT图像数据集标签

引言 该脚本用于将包含对象标注的 XML 文件转换为 YOLO&#xff08;You Only Look Once&#xff09;对象检测格式的 TXT 文件。脚本读取 XML 文件&#xff0c;提取对象信息&#xff0c;规范化边界框坐标&#xff0c;并将数据写入相应的 TXT 文件。此外&#xff0c;它还生成一个…

做视频混剪都是去哪里找高清素材的?分享10个高清视频素材库

提升视频混剪质感的10个高清素材库推荐 在这个视觉体验至上的时代&#xff0c;视频的视觉质量对吸引观众至关重要。如果你正在寻找高清素材以提升视频混剪作品的层次&#xff0c;那么你来对地方了。今天&#xff0c;我将为你揭秘10个视频混剪达人常用的高清素材库&#xff0c;…

ABAP:成本中心计划批量KP06导入BAPI

KP06需要传入成本要素,这里就比较麻烦,目前找了很多BAPI都没有合适的,经过两天的查找资料才找到,下面详细见代码:一个批量导入程序: *&---------------------------------------------------------------------* *& 包含 *&----------------…

Kylin Cube资源使用限制:优化大数据查询性能的策略

Kylin Cube资源使用限制&#xff1a;优化大数据查询性能的策略 Apache Kylin作为一个高效的大数据分析平台&#xff0c;其核心功能之一是构建Cube来预计算和存储多维数据集。随着数据量的增长&#xff0c;合理地管理和限制Cube的资源使用变得尤为重要。本文将探讨Kylin是否支持…