(同一个正则表达式设置了全局标志(如 g),并循环使用test方法),导致匹配相同值却返回结果不一样

devtools/2024/12/27 7:00:20/

(同一个正则表达式设置了全局标志(如 g),并循环使用test方法),导致匹配相同值却返回结果不一样!

在这里插入图片描述

正则表达式的 lastIndex 属性。每次执行 test 方法时,如果正则表达式设置了全局标志,test 方法会改变正则表达式的> lastIndex 属性。连续执行 test() 方法时,后续的执行将会从 lastIndex 处开始匹配字符串,而不是每次都从字符串的开始位置匹配。

解决方法

三种方式:

描述
不使用全局标志:如果不需要全局匹配,就不要在正则表达式中使用 g 标志,这样可以避免 lastIndex 属性的影响不使用 ’g‘
重置 lastIndex:在每次使用 test 方法之前,手动将正则表达式的 lastIndex 属性重置为0。这样可以确保每次匹配都是从字符串的开始位置进行reg.lastIndex =0
每次创建新的正则表达式对象:在循环中,每次匹配时都创建一个新的正则表达式对象,这样可以避免 lastIndex 属性的影响new RegExp()

http://www.ppmy.cn/devtools/145750.html

相关文章

Android 13 非 Launcher 应用开机启动:通过监听开机广播实现

Android 13 非 Launcher 应用开机启动:通过监听开机广播实现 在 Android 系统中,非 Launcher 应用无法直接作为默认启动器运行,尤其是在 Android 13 中,即使通过修改 AOSP 源码为应用添加 Launcher 属性,也可能无法实现开机启动。针对这种情况,如果项目时间紧迫,可以通…

当鼠标右键点击的时候,下拉菜单显示一片空白,该怎么解决?

问题展示: 当鼠标右键点击空白处,或者鼠标右键点击文件的时候,下拉框显示一片空白。。。 解决办法: 鼠标右键 电脑桌面底部,打开 任务管理器; 在进程中,找到Windows资源管理器,然后…

面试题整理17----K8s中request和limit资源限制是如何实现的

面试题整理17----K8s中request和limit资源限制是如何实现的 1. 资源请求(Resource Requests)2. 资源限制(Resource Limits)3. 总结 在Kubernetes(K8s)中,Pod的资源限制(Resource Lim…

基于Spring Boot的个性化推荐外卖点餐系统

一、系统概述 该系统旨在为用户提供便捷、个性化的外卖点餐体验,同时为商家提供高效、智能的餐饮管理服务。通过利用Spring Boot框架的稳定性和可扩展性,系统实现了前后端分离的开发模式,支持多种设备和平台,确保用户在不同场景下…

【算法题解】Berland 路标限速问题(Follow Traffic Rules)

问题描述 在 Berland 城市,有一条连接首都 Berland 和奥林匹克城市 Bercouvert 的公路。为了改善交通管理,这条路上设立了一个限速标志,限制某一段路程的最大速度。在通过这个标志之后,车辆可以恢复到任意速度。我们需要计算&…

【gopher的java学习笔记】Spring Boot Starter初探

转到java这边后,这天需要搭一个java的web service出来,如果是以前golang的话,那我就可以非常熟练的用gin搭建一个web service出来,核心逻辑就是写好一些rest接口实现后再加上最为灵魂的一句: // 启动Gin服务器在8080端…

工控界面还得是工业风的设计看着舒服

工控界面采用工业风设计,确实给人一种独特的舒适感。这种风格通常以冷色调为主,如沉稳的蓝、灰等颜色,营造出冷静、专业的氛围。界面布局规整且简洁,功能模块划分清晰,各种仪表、图表和按钮一目了然,便于操…

Android Studio 的革命性更新:Project Quartz 和 Gemini,开启 AI 开发新时代!

🌟 Android Studio 的革命性更新:Project Quartz 和 Gemini,开启 AI 开发新时代! 在这个技术飞速发展的时代,Android 开发者们迎来了两项重大更新:Project Quartz 和 Gemini。这不仅仅是更新,而…