【JS】浅述JS常用的正则表达式

JavaScript 正则表达式详解 正则表达式(Regular Expression,简称 RegEx)是一种强大的文本匹配工具,广泛应用于字符串搜索、替换和验证等场景。 阅读详情

  Javascript中的正则表达式(regular expression)提供了强大的模式匹配和文本检索与替换的函数,常用于数据提交到服务器之前先进行简单的表单验证,以节约大量的服务器端系统资源,并提供更好的用户体验。下面简单介绍一下javascript中如何使用正则表达式。

有2种创建方法,分别是采用new运算符创建和采用字面量方式(常用)。

方法一:采用new运算符创建

var box=new RegExp('helloworld');      //第一个参数是字符串
var box=new RegExp('helloworld','igm');     //第二个参数是可选模式修饰符,i表示忽略大小写,g表示全局,m表示多行匹配

方法二:采用字面量方式,使用一对斜杠/*********/来表示匹配验证的规则

var box=/helloworld/;              //直接用2个斜杠
var box=/helloworld/ig;           //第二个斜杠后面加上模式修饰符


常用的正则表达式:

1、验证邮政编码,格式为:6位数字,且首位不能为0

var pattern=/[1-9][0-9]{5}/;     //若写成首位匹配模式:/^[1-9][0-9]{5}$/,则str前后不能添加其他字符,即str='137680';
var str='The code is 137680.';
alert(pattern.exec(str));


2、检查文件压缩包,格式为:文件名+扩展名,文件名可以是字母、数字、下划线,扩展名可以是zip,gz,rar,7z。

字母、数字、下划线使用正则表达式可表示为/[a-zA-Z0-9_]/,也可简写为/\w/(小写w);另外,若要匹配横杆-(或中文横杆——),则添加转义\-(或中文横杆\——);添加+号表示可以匹配一个或多个字符。

使用转义\.匹配扩展名前的点号。

zip|gz|rar|7z,中间的竖线|表示“或”关系,即匹配4种格式中的任意一种即可。

var pattern=/[\w\-\——]+\.zip|gz|rar|7z/;
var str='test-123.zip';
alert(pattern.exec(str));

3、删除多余空格,原理:把空格替换成''。转义\s表示检查空格,g表示全局查找,若不添加g则只匹配第一个空格,即显示“123456 789  007  892”

var pattern=/\s/g;
var str='123 456 789  007  892';
alert(str.replace(pattern,''));


4、删除首尾空格

方法一:

/^\s+/ ^表示从头开始严格匹配,+号表示匹配一个或多个空格,否则只匹配一个空格

/\s+$/ $表示从尾部严格匹配

var pattern=/^\s+/;           //强制首
var str='        te  st        ';
var result=str.replace(pattern,'');
pattern=/\s+$/;          //强制尾
result=result.replace(pattern,'');
alert('|'+result+'|');

方法二:使用非贪婪(惰性)捕获

/^\s+(.+?)\s+$/ (*******)使用括号表示分组,在这里表示第一个分组。

(.+)中.表示任意字符,.+表示一个或多个任意字符。该种写法属于贪婪模式,会显示“|te   st       |”。

添加问号?则是惰性模式,st后面匹配到空格后就不再允许匹配"te   st"中的空格了,(.+?)会显示“|te   st|”。

注意:\s后面的+号并非连接符,而是表示匹配该法则的一个或多个字符。

var pattern=/^\s+(.+?)\s+$/;
var str='        te  st        ';
var result=pattern.exec(str)[1];
alert('|'+result+'|');

方法三:使用分组获取

同样需要惰性捕获,否则会显示“|te   st       |”。

$1同样表示第一个分组,此处的$1获取到的内容是"te   st",然后对"        te  st        "进行替换。

var pattern=/^\s+(.+?)\s+$/;
var str='        te  st        ';
var result=str.replace(pattern,'$1');
alert('|'+result+'|');

 

4、简单的验证电子邮件,格式分为几组:()@().()  即用户名+@+邮箱类型+.+后缀   邮箱类型有126、163、qq、gmail等,后缀(不能是数字)有com\cn\net等

{m,n}表示字符个数多于m且少于n。

此处的[0]即第0个分组,表示获取"test_123@163.com"。

var pattern=/^([\w\.\-\#]+)@([\w\-]+)\.([a-zA-Z]{2,3})$/;
var str='test_123@163.com';
alert(pattern.exec(str)[0]);

 

上面用到的exec()方法可以用test()方法替换,但返回的值是布尔类型。

以上的正则表达仅为简单的验证,欢迎大家一起探讨,共同进步。


Author:致知

Sign:路漫漫其修远兮,吾将上下而求索。

JavaScript正则表达式 <script>// var reg = /pattern/modifiers = /匹配规则/匹配修饰符// 定义正则表达式var reg = /e/i //匹配规则:字符'e';匹配修饰符:i,表示对大小写不敏感// 定义一个字符串// 匹配console.log("str中是否包含e或者E?:" + reg.test(str))//若str中包含e或E,则返回true,反之返回false</script> 阅读详情

相关推荐

深入解析路科验证V0实验lab1:SV接口与时钟块实战

本文深入解析了路科验证V0实验Lab1的核心内容,重点阐述了SystemVerilog接口与时钟块在验证环境搭建中的关键作用。通过拆解router_io接口设计、时钟块同步机制及程序块封装,详细讲解了如何构建稳定可靠的验证通信基础,并提供了复位时序分析与常见调试技巧,为后续复杂验证打下坚实基础。

peach的博客 430

正则表达式短横线"-"的转义写法示例

一直以为正则方括号内的短横线是要转义的,例: [a-z\-] 其实“-”在紧挨边界的时候不需要转义,也就是说可以写成: [a-z-] 或 [-a-z] 经过自己验证,我们暂且称“a-z”为“组”,结论是“在方括号边界或是组边界的都不需要转义。” [a-z-0-9] 再试一试发现这样也可以,这样结论又变成“只要短横线(-)不能构成组,就可以不专一”,不知道这样说是否严密。 [a-z!-

程序狗的成长之路 1万+

YOLOv8模型INT8量化实战:解决sigmoid输出归零的坑(附代码修改)

本文详细介绍了YOLOv8模型INT8量化过程中遇到的sigmoid输出归零问题及其解决方案。通过修改模型导出代码、优化ONNX量化流程,并提供完整的部署优化技巧,帮助开发者在边缘计算设备上实现高效的模型推理。文章还包含量化效果验证和常见问题排查方法,助力开发者快速解决实际部署中的难题。

vvv99的博客 253

java 正则匹配 短横线,【已解决】js中正则无法匹配短横线

折腾:期间,虽然解决了问号问题,但是却还是无法用:let accessTokenRegex = new RegExp("\\?accessToken=([\w\-]+)", "g");去匹配:/uapp/?accessToken=75872da5-56b8-4fd3-96be-7ad69d56a6e4中的短横线且调试时,正则打印出来的竟然没了短横线:accessTokenRegex=/\?acce...

weixin_34276402的博客 2045

图像评价之计算PSNR、SSIM、MSE、LPIPS和NIQE评价指标

如果代码对你的研究有所帮助,请为该仓库点上小星星。

书山有路,学海无涯! 2655

【AI编程】用AI开发STM32软件(1):环境配置+AI编写LED闪烁

现在AI编程这么火,不拿来开发嵌软也太可惜了。笔者最近刚好有个2学分的实践课,要自己做项目,这不,机会就来了。笔者特意记录下来其过程,以供大家学习和参考。使用:VSCode+Copilot+EIDE+STM32CubeMX,单片机用最经典的stm32f103c8t6+STLink。

qq_23220445的博客 4573

浅述 js正则表达式

浅述 js正则表达式 什么是正则表达式 正则表达式就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,用来表达对字符串的一种过滤逻辑。 通过正则表达式可以达到如下的目的: 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”); 可以通过正则表达式,从字符串中获取我们想要的特定部分。 匹配普通文本字符 正则表达式可以只包含普通的文本,代表去精确匹配这个文本。例如:...

Leon_940002463的博客 426

从原理到实践:手把手教你如何校准和使用六维力传感器(附常见问题排查)

本文详细解析六维力传感器的工作原理与校准方法,提供从选型到故障排查的完整指南。重点介绍电阻式与电容式技术对比、六步校准法实战以及温度补偿技巧,帮助工程师精准测量空间力场。适用于机器人触觉反馈、航空航天测试等高精度场景。

weixin_29309475的博客 388

JS常用正则表达式大全

JavaScript中使用正则表达式

阿杰的博客 2万+

轴承寿命预测实战:手把手教你用IEEE PHM2012数据集训练模型(附Python代码)

本文详细介绍了如何利用IEEE PHM2012数据集构建轴承剩余寿命预测模型,从数据预处理、特征工程到LSTM模型训练与部署,提供了完整的Python代码实现。通过实战案例,帮助读者掌握预测性维护中的关键技术,提升工业设备的运行安全与效率。

weixin_29186249的博客 312

21、博弈中的对抗搜索算法解析

本文深入解析了博弈中的对抗搜索算法,涵盖极小极大算法、阿尔法-贝塔剪枝、移动排序与换位表等核心技术。文章分析了算法的数学基础与实现机制,探讨了其在国际象棋、围棋等复杂游戏中的应用,并扩展至多人游戏中的联盟与合作行为。通过对比不同类型策略的优劣,展示了对抗搜索在实际博弈系统中的演进方向与优化路径,为人工智能决策提供了理论支持与实践指导。

rust6ferris的博客 129

常用js正则表达式 Javascript正则表达式实战手册

最近做了几个项目,发现正则表达式用得越来越多了。我个人的习惯是,能通过查手册获取的东西绝不死记硬背,虽然大多数技术网站都搜罗了一堆Javascript正则表达式的用法,但我还是想整理一份更有实战意义的手册。说白了就是,如果以后需要用到正则表达式,直接过来复制粘贴就行啦!我会尽量把排版做的漂亮一点,便于大家提高开发效率。前面是Javascript正则表达式的简明用法,实战内容请跳到最后一节。   ...

xh601的博客 5308

人形机器人电路板和算法分析

人形机器人电路板与算法深度剖析 电路板领域:人形机器人电子系统分为计算、驱动、感知、能源、通信五大模块。主控板采用高性能SoM(如NVIDIA Jetson AGX Orin),需满足严格电源完整性(PDN)与信号完整性(SI)要求;关节驱动板集成MCU、GaN/SiC功率器件及高精度编码器接口,采用刚柔结合PCB以适应狭小空间。挑战包括热-振可靠性(85°C/10G振动)、高密度互连(3mil线宽)及EMC兼容性。 算法领域:运动控制依赖MPC(模型预测控制)与强化学习(RL),实现实时动态平衡;感知算法

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 307

【JS】JavaScript正则表达式基础

目录一、正则表达式二、字符串使用正则表达式三、常用例子 一、正则表达式 关于正则表达式,我在另一篇博客记录过:正则表达式 二、字符串使用正则表达式 三、常用例子

小绵杨 2211

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【JavaScript】一文了解JS的正则表达式

详解JavaScript中正则表达式

ztK63LrD的博客 2222

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JavaScript的正则表达式

JavaScript的正则表达式

weixin_48602044的博客 1158

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JavaScript常用的正则表达式

正则表达式 英文:Regular Expression,在代码中常简写为regex、regexp或RE,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。 什么是正则表达式: 1、正则表达式是由一个字符序列形成的搜索模式 2、当你在文本检索数据时,你可以用搜索模式来描述你要查询的内容 3、正则表达式可以是一个简单的字符 或一个更复杂的模式 4、正则表达式可以用于所有文本搜索和文本替...

weixin_45846326的博客 1029

javascript浅度克隆、深度克隆

1.对象属性浅度克隆 let clone = Object.assign({}, target) 2.对象属性深度克隆 简单的深克隆可以使用JSON.parse()和JSON.stringify(),这两个api是解析json数据的,所以只能解析除symbol外的原始类型及数组和对象 let cloneObj = JSON.parse(JSON.stringify(target)) 3....

m0_37293343的博客 297

js常用函数总结

本文整理了JavaScript常用的核心函数,涵盖基础操作、数组、字符串、对象、日期和正则表达式等场景。

0.0的博客 1801

java 正则表达式 和 js正则表达式

java正则表达式和js正则表达式基本相同,在这里做个详细记录,方便查找和参考。

weixin_41102181的博客 2705

js事件+正则表达式+常用的正则表达式

目录 js事件 正则表达式 . 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。 常用的正则表达式 js事件 onabort 图像加载被中断 onblur 元素失去焦点 onchange 用户改变域的内容 onclick 鼠标点击某个对象 ondblclick 鼠标...

RONG_YAO的博客 755

JS的常用正则表达式 验证密码

JS的常用正则表达式篇一(转载自用) JS的正则表达式 强:字母+数字+特殊字符&nbsp; &nbsp;^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$ &...

dierlv的博客 1345

js 常用的正则表达式

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。 语法 ## \d 数字 \w数字+字母+_ \s空字符 正则表达式 写法 var RegExp = / /ig ##记住用test时不要加"" /'' /正则表达式主体/修饰符(可选) 一、校验数字的...

趙尒七 399

js 常用正则表达式

常用正则表达式合集: 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?[1-9][0-9]*$ 验证非零的负整数:^\-[1-9][0-9]*$ 验证非负整数(正整数 + 0) ^\d+$ 验证非

PrimaryColor 665

JS常用的正则表达式汇总

JS常用的正则表达式,邮箱正则,IP正则,数字字母正则,电话正则,match和test的区别,还有正则相关小工具,都在文中一一示例。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 2082
上一篇: 【Servlet】web.xml中servlet的配置方法
下一篇: 【Java】JDBC向MYSQL读写大文本和二进制文件
励志故事
博客等级 码龄12年 99粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值