【Java Web学习 | 第14篇】JavaScript(8) -正则表达式

【Java Web学习 | 第14篇】JavaScript(8) -正则表达式

🌈个人主页: Hygge_Code🔥热门专栏:从0开始学习Java | Linux学习| 计算机网络💫个人格言: “既然选择了远方,便不顾风雨兼程”

在这里插入图片描述

文章目录

JavaScript 正则表达式详解

正则表达式是处理字符串的强大工具,在 JavaScript 中被广泛应用于表单验证、文本处理和数据提取等场景。本文将从正则表达式的基本概念出发,详细介绍其语法规则和实际应用方法。

什么是正则表达式🤔

正则表达式是用于匹配字符串中字符组合的模式,在 JavaScript 中以对象形式存在。它主要用于:

  • 验证表单输入(如限制只能输入特定字符)
  • 过滤文本中的敏感词
  • 从字符串中提取特定信息

JavaScript 正则表达式的定义与使用🥝

在 JavaScript 中,定义正则表达式有两种方式:

1. 字面量语法

const 规则变量名 =/表达式/;

2. 常用匹配方法

test() 方法🍋‍🟩

用于检测字符串是否符合正则表达式规则,返回布尔值:

const find =/前端/;const str ="我们在学习前端,希望突击前端赶大项目的进度"; console.log(find.test(str));// true(字符串中包含"前端")
exec() 方法🍋‍🟩

在字符串中执行匹配搜索,返回匹配结果数组或 null:

console.log(find.exec(str));// 返回包含"前端"的数组

正则表达式的核心组成部分🐦‍🔥

1. 元字符

元字符是具有特殊含义的字符,可分为以下几类:

边界符

用于指定字符的位置:

  • ^:表示匹配行首的文本(以指定字符开始)
  • $:表示匹配行尾的文本(以指定字符结束)

^$ 一起使用时,表示精确匹配:

console.log(/^哈$/.test("哈"));// true(精确匹配单个"哈") console.log(/^哈$/.test("哈哈"));// false(不是单个"哈")
量词

用于指定字符出现的次数:

  • *:重复 0 次或更多次
  • +:重复 1 次或更多次
  • ?:重复 0 次或 1 次
  • {n}:重复 n 次
  • {n,}:重复 n 次或更多次
  • {n,m}:重复 n 到 m 次(注意逗号两侧不能有空格)

示例:

console.log(/^哈{2}$/.test("哈哈"));// true(正好出现2次) console.log(/^哈{2,4}$/.test("哈哈哈哈"));// true(出现4次,在2-4范围内) console.log(/^哈{2,}$/.test("哈哈哈哈"));// true(出现4次,不少于2次)
字符类

用于匹配一类字符:

  1. []:匹配字符集合中的任意一个字符
console.log(/[abc]/.test("andy"));// true(包含"a") console.log(/[abc]/.test("die"));// false(不包含a、b、c中任何一个)
  1. 连字符 -:表示一个范围
console.log(/^[a-z]$/.test("p"));// true(小写字母) console.log(/^[A-Z]$/.test("B"));// true(大写字母) console.log(/^[0-9]$/.test("2"));// true(数字)
  1. 取反符号 ^:在 [] 内使用,表示匹配除指定字符外的任意字符
console.log(/^[^a-zA-Z0-9]$/.test("!"));// true(非字母数字)
  1. 预定义字符类:常见模式的简写
    • \d:匹配 0-9 之间的任意数字(相当于 [0-9]
    • \D:匹配非数字(相当于 [^0-9]
    • \w:匹配字母、数字和下划线(相当于 [A-Za-z0-9_]
    • \W:匹配非字母、数字和下划线
    • \s:匹配空格(包括换行符、制表符等)
    • \S:匹配非空格字符

2. 修饰符

修饰符用于约束正则表达式的执行行为:

  • i:忽略大小写(ignore)
  • g:全局匹配(global)

示例:

// 忽略大小写 console.log(/a/i.test("A"));// true console.log(/^java$/i.test("JAVA"));// true// 全局替换const str2 ="我草,整个沧南市都因林七夜一人而存在,我草";const ret2 = str2.replace(/我草/g,"**");// 替换所有匹配项 console.log(ret2);// "**,整个沧南市都因林七夜一人而存在,**"

简单示例🍂

表单验证

// 验证QQ号(从10000开始)const qqReg =/^[1-9][0-9]{4,}$/;// 验证日期格式(yyyy-mm-dd)const dateReg =/^\d{4}-\d{1,2}-\d{1,2}$/;

如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!

在这里插入图片描述

Read more

LabVIEW开发解魔方机器人

LabVIEW开发解魔方机器人

机器人在教育实践与技术验证领域的应用日益广泛,解魔方机器人作为融合视觉识别、运动控制、算法优化的典型载体,需实现图像采集、色块识别、动作执行的全流程自动化,同时兼顾教学场景下的手动操作与可视化演示需求。传统方案存在软硬件集成复杂、开发周期长、交互性不足等问题,基于 LabVIEW 的图形化编程优势,构建集视觉处理、三维建模、指令下发、运动控制于一体的智能解魔方系统,既满足高效复原需求,又具备教学演示的直观性与扩展性。 整体架构设计 系统采用 “LabVIEW 上位机 + 单片机下位机” 的分布式架构,实现功能分层与协同联动,充分发挥 LabVIEW 在数据处理、界面开发、硬件通信的集成优势,架构简洁且可维护性强。 1. 上位机:基于 LabVIEW 全流程开发,承担图像采集处理、色块识别校准、三维孪生建模、还原算法解算、串口通信控制等核心功能,是系统的逻辑与交互中心; 2. 下位机:以单片机为控制核心,接收上位机指令,通过驱动模块控制步进电机执行魔方转动动作,同时反馈执行状态;

OpenClaw对接飞书机器人高频踩坑实战指南:从插件安装到回调配对全解析

前言 当前企业办公场景中,将轻量级AI框架OpenClaw与飞书机器人结合,能够快速实现智能交互、流程自动化等功能。然而,在实际对接过程中,开发者常常因权限配置、环境依赖、回调设置等细节问题陷入反复试错。本文以“问题解决”为核心,梳理了10个典型踩坑点,每个问题均配套原因分析、排查步骤和实操案例。同时,补充高效调试技巧与功能扩展建议,帮助开发者系统性地定位并解决对接障碍,提升落地效率。所有案例基于Windows 11环境、OpenClaw最新稳定版及飞书开放平台最新界面验证,解决方案可直接复用。 一、前置准备(快速自查) 为避免基础环境问题浪费时间,建议在开始前确认以下三点: * OpenClaw已正确安装,终端执行 openclaw -v 可查看版本(建议使用最新版,旧版本可能存在插件兼容风险)。 * Node.js版本不低于v14,npm版本不低于v6,通过 node -v 和 npm -v 验证,防止因依赖版本过低导致插件安装失败。 * 飞书账号需具备企业开发者权限(企业账号需管理员授权,个人账号默认具备)

WeBASE一键部署中关于配置,下载的问题

WeBASE一键部署中关于配置,下载的问题

其实网上的相关内容有好多,但大多数是对官方文档的一个复述,于是我从头开始,用一个新的Ubuntu系统部署WeBASE,分享在部署过程中的问题及解决方法,我用的是Ubuntu20.04 有一定能力的可以直接安照官方文档一键部署 — WeBASE v1.5.5 文档进行部署 1,安装依赖 CentOS 7 / RHEL 7: sudo yum -y install epel-release && sudo yum -y install openssl curl wget git nginx dos2unix Ubuntu 16.04+ / Debian 9+: sudo apt update && sudo apt -y install

IDEA/WebStorm 切换分支(超简单)

IDEA/WebStorm 切换分支(超简单)

IDEA/WebStorm 切换分支 * 1、git命令方式切换分支 * 1.1、 切换至本地已`存在`的分支A * 1.2、 切换至本地`不存在`的新分支A * 2、idea/webstorm 右键项目 切换分支 * 3、idea/webstorm 右下角状态栏 切换分支 * 4、idea/webstorm git面板 切换分支 1、git命令方式切换分支 1.1、 切换至本地已存在的分支A git checkout A 1.2、 切换至本地不存在的新分支A * -b表示创建并切换分支 git checkout -b A 2、idea/webstorm 右键项目