正则表达式是前端表单验证、字符串匹配的核心工具,简洁高效的正则能大幅提升代码性能。本专栏整理了7道高频面试题,包含核心正则表达式、代码实现及关键知识点解析,帮你快速掌握正则实用技巧。

一、正则基础:核心概念与语法

在学习面试题前,先明确几个高频基础语法,这是解题的关键:

语法符号 含义 示例
^ 匹配字符串开头(若在[]内则表示“排除”) ^http:匹配以http开头的字符串
$ 匹配字符串结尾 .com$:匹配以.com结尾的字符串
* 匹配前一个字符0次或多次 a*:匹配空、aaaaaa
+ 匹配前一个字符1次或多次 a+:匹配aaaaaa…(不能为空)
? 匹配前一个字符0次或1次 a?:匹配空或a
{n,m} 匹配前一个字符nm a{2,5}:匹配aaaaaaaaaaaaaa
\w 匹配字母、数字、下划线(等价于[a-zA-Z0-9_] \w+:匹配abc123a_b
\d 匹配数字(等价于[0-9] \d{2}:匹配0199等两位数字
[] 字符集合,匹配集合内任意一个字符 [a-z]:匹配任意小写字母
\u4e00-\u9fa5 匹配Unicode编码中的中文汉字 [\u4e00-\u9fa5]+:匹配1个及以上中文

| 代表逻辑“或”,匹配左右任意一个表达式, a|b 代表匹配a或b

二、高频面试题:正则实现与解析

1. 需求:输入的字符串必须包含三个连续的k

正则表达式
var reg = /k{3}/;
代码验证
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>验证连续三个k</title>
</head>
<script>
var reg = /k{3}/;
// 测试:含"kkk"返回true,不含返回false
console.log(reg.test('kakk')); // false(仅2个k)
console.log(reg.test('kkk'));  // true(3个连续k)
console.log(reg.test('aabkkkc')); // true(中间含3个连续k)
</script>
<body></body>
</html>
解析
  • k{3}:精确匹配“k”连续出现3次,无需^$(只需“包含”,无需“整串匹配”)。

2. 需求:输入的字符串必须全部是汉字

正则表达式
var reg = /^[\u4e00-\u9fa5]+$/;
代码验证
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

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

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

相关文章

【数据可视化-89】基孔肯雅热病例数据分析与可视化:Python + pyecharts洞察疫情动态

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

云智智慧停充一体云-allnew全新体验-路内停车源码+路外停车源码+充电桩源码解决方案

采用Java主流的微服务技术栈&#xff0c;基于 Spring Cloud Alibaba 的微服务解决方案进行封装的快速开发平台&#xff0c;包含多种常用开箱即用功能的模块&#xff0c;通用技术组件与服务、微服务治理&#xff0c;具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动生成前后端代…

利用pypy加速pyxlsbwriter生成xlsb文件

上文介绍了python通过DuckDB和pyxlsbwriter模块生成xlsb文件&#xff0c;因为python是解释执行&#xff0c;它的速度有点慢&#xff0c;pypy是另一种python解释器&#xff0c;它使用即时编译&#xff08;JIT&#xff09;技术来提高执行速度。 因为DuckDB与pypy不兼容&#xff0…

【Java后端】Spring Boot 集成 MyBatis-Plus 全攻略

Spring Boot 集成 MyBatis-Plus 全攻略 1. 为什么选择 MyBatis-Plus 零侵入&#xff1a;在 MyBatis 基础上增强&#xff0c;不影响现有功能。内置 CRUD&#xff1a;无需写 XML/SQL&#xff0c;直接调用 BaseMapper 方法。强大插件&#xff1a;分页插件、性能分析、乐观锁、多租…

LangChain 多任务应用开发

Q: LangChain dify coze是竞品关系 都是AI Agent搭建平台&#xff0c;dify和coze 属于低代码&#xff0c;langChain属于高代码&#xff0c;coze优于dify Q&#xff1a;向量数据库是存储向量&#xff0c;做相似度检索的&#xff0c;可以用faiss milvus chromdb Q&#xff1a;使用…

实用技巧:Oracle中精准查看表占用空间大小

目录实用技巧&#xff1a;Oracle中精准查看表占用空间大小一、为什么需要精准统计表空间占用&#xff1f;二、完整查询SQL&#xff1a;覆盖表、LOB、索引三、SQL语句关键逻辑解析1. 基础表&#xff1a;dba_tables 与 dba_tablespaces2. 子查询1&#xff1a;统计表段空间&#x…

openEuler等Linux系统中如何复制移动硬盘的数据

在 openEuler 系统中,提示 “You should mount volume first” ,意思是需要先挂载移动硬盘的分区才能访问: 安装必要软件(针对特殊文件系统) 如果移动硬盘是 NTFS 等非 Linux 原生支持的文件系统格式,需要安装对应的支持软件,以挂载 NTFS 格式移动硬盘为例,需要安装 …

java如何把字符串数字转换成数字类型

在Java中将字符串数字转换为数字类型有多种方法&#xff0c;以下是详细说明和示例代码&#xff1a; 一、基础转换方法 Integer.parseInt() String str "123"; int num Integer.parseInt(str); // 转换为intDouble.parseDouble() String str "3.14"; dou…

WPFC#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表

WPF&C#超市管理系统10. 订单详情10.1 页面布局10.2 功能实现11. 顾客注册12. 商品销售排行查询与库存提示14. LiveChart报表总结10. 订单详情 10.1 页面布局 页面分三行布置&#xff0c;第一行复用OutstorageView界面的第一行&#xff0c;将属性和命令修改为顾客相关第二…

【Linux】文件基础IO

1.关于文件的共识原理 1.文件内容属性 2.文件分为打开的文件和没打开的文件 3.打开的文件&#xff1a; 文件被打开必须先被加载到内存&#xff0c;所以本质是研究进程和文件的关系&#xff0c;一个进程可以打开多个文件。操作系统内部一定存在大量被打开的文件&#xff0c;要进…

基于微信小程序的生态农产销售管理的设计与实现/基于C#的生态农产销售系统的设计与实现、基于asp.net的农产销售系统的设计与实现

基于微信小程序的生态农产销售管理的设计与实现/基于C#的生态农产销售系统的设计与实现、基于asp.net的农产销售系统的设计与实现

Java研学-SpringCloud(五)

一 Nacos 配置中心 1 引入依赖 – services.pom每个微服务都需要<!--配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>2 配置文件 –…

.NET 中的延迟初始化:Lazy<T> 与LazyInitializer

标签&#xff1a;线程安全、延迟初始化、按需初始化、提升启动性能 项目地址&#xff1a;NitasDemo/12Lazy/LazyDemo at main Nita121388/NitasDemo 目录Lazy<T>1. 概念2. 基本用法 3. 异常处理 4. 线程安全模式 5. 示例1. 线程安全模式 (ExecutionAndPublication)2. 发…

【LLIE专题】LLIE低照度图像结构先验提取方法

Zero-Shot Day-Night Domain Adaptation with a Physics Prior&#xff08;ICCV,2021&#xff09;专题介绍一、研究背景二、方法1. 物理反射模型与颜色不变特征的推导&#xff08;原理推导、物理依据&#xff09;2. 颜色不变特征的计算&#xff08;特征计算公式整个过程&#x…

Font Awesome Kit 使用详解

在现代网页设计中&#xff0c;图标是提升用户体验的关键元素。而 Font Awesome 作为最受欢迎的图标库&#xff0c;其最新版本 Font Awesome 7 通过 Kit 功能提供了更便捷高效的集成方式。本文将带你全面了解如何使用 Font Awesome Kit&#xff0c;让你的网站图标管理变得轻松高…

第七十八章:AI的“智能美食家”:输出图像风格偏移的定位方法——从“滤镜病”到“大师风范”!

AI图像风格偏移前言&#xff1a;AI的“火眼金睛”——输出图像风格偏移的定位方法&#xff01;第一章&#xff1a;痛点直击——“画风跑偏”&#xff1f;AI生成艺术的“审美危机”&#xff01;第二章&#xff1a;探秘“画风密码”&#xff1a;什么是风格偏移&#xff1f;它藏在…

Android原生(Kotlin)与Flutter混合开发 - 设备控制与状态同步解决方案

Kotlin 原生实现 (Android) 1.1 AndroidManifest.xml <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"com.afloia.smartconnect"><applicationandroid:name".MainApplication"android:label"Smart …

已开源:Highcharts.NET,Highcharts Android,与Highcharts iOS集成

近期了解到&#xff0c;Highcharts官方宣布将Highcharts.NET&#xff0c;Highcharts Android&#xff0c;与Highcharts iOS集成转换为开源。对于Highcharts提供世界一流的数据可视化工具&#xff0c;一直致力于将资源集中在可以为您提供最大价值的地方。官方提到&#xff1a;这…

KingbaseES:一体化架构与多层防护,支撑业务的持续稳定运行与扩展

声明&#xff1a;文章为本人真实测评博客&#xff0c;非广告 目录 引言 一、什么是KingbaseES&#xff1f; 二、KingbaseES核心特性 1. 一键迁移&#xff0c;极速性能&#xff0c;安全无忧​ 2. 性能强劲&#xff0c;扩展性强&#xff0c;助力企业应对大规模并发挑战​ …

scikit-learn/sklearn学习|广义线性回归 Logistic regression的三种成本函数

【1】引言 前序学习进程中&#xff0c;已经对线性回归和岭回归做了初步解读。 实际上&#xff0c; Logistic regression是一种广义的线性模型&#xff0c;在对线性分类的进一步学习前&#xff0c;有必要了解 Logistic regression。 【2】Logistic regression的3种成本函数 …