当前位置: 首页 > news >正文

正则表达式实用面试题与代码解析专栏

正则表达式是前端表单验证、字符串匹配的核心工具,简洁高效的正则能大幅提升代码性能。本专栏整理了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.dtcms.com/a/336693.html

相关文章:

  • 【Nginx】限流设置
  • 二三层交换转发业务~基础汇总
  • Mysql笔记-错误条件\处理程序
  • SSM从入门到实践:1.1 Spring框架概述与IoC容器入门
  • 堆(Heap):高效的优先级队列实现
  • duiLib 解决点击标题栏中按钮无响应问题
  • ROS2基础
  • C语言零基础第19讲:自定义类型—联合体和枚举
  • 解锁Java开发神器:XXL-Job从入门到精通
  • BT_LE_ADV_CONN_ONE_TIME 参数详解
  • Spring 创建 Bean 的 8 种主要方式
  • [创业之路-556]:创新的本质是赚不确定性带来的潜在价值,把不确定性逐步转化确定性,周而复始。
  • 产品设计.Ai产品经理
  • 48.Seata认识、部署TC服务、微服务集成
  • 网络中的一些基本概念
  • Conda 环境 在AI 私有化部署 有怎么用?
  • 微信小程序 小白gps工具v0.01 使用说明
  • react echarts图表监听窗口变化window.addEventListener(‘resize’)与ResizeObserver()
  • python -基础(5)组合数据类型
  • 每日两道算法题:DAY3
  • java常见的数据加密
  • 当 AI 开始 “理解” 情感:情感计算技术正在改写人机交互规则
  • Linux 服务:iSCSI 存储服务配置全流程指南
  • 廖雪峰-Java教程-Part02
  • C#高级语法_委托
  • 力扣第463场周赛
  • 17-线程
  • uC/OS - III 系统DEBUG时内核对象统计信息
  • 模拟实现 useEffect 功能
  • 配置 NVIDIA RTX 5090 + sm_120 + flashattention,已跑通一个大模型 ~~