浅谈regExp的test方法取得的值变化的原因及处理方法

发布时间 - 2026-01-10 23:20:43    点击率:

1、JavaScript 正则表达式对象RegExp的test方法,用于检测一个字符串是否匹配某个模式。

字面量定义RegExp对象:var re = /pattern/attributes,其中attributes可以是g,i,m;

阅读以下程序:

<script type="text/javascript"> 
var str = 'abc123'; 
var re = /^abc/g ;
var result1 = re.test(str); 
var result2 = re.test(str); 
var result3 = re.test(str); 
document.write('result1:' + result1 + '<br/>'); 
document.write('result2:' + result2 + '<br/>'); 
document.write('result3:' + result3); 
</script>

我们会认为打印结果应该是true;true;true;

而实际情况却是true;false;true;

2、为什么第二个结果是false?

发现RegExp对象有一个lastIndex的属性,如果使用了全局修饰符,那么执行test方法后,lastIndex就会记录匹配的字符串在原始字 符串中最后一位的索引加一,例如执行了var result1 = re.test(str)后lastIndex为3(document.write('re.lastindex:' + re.lastIndex+ '<br/>');),如果没有发现匹配lastIndex置为0。当下次再执行时,对给定的字符串匹配不是从开头位置,而是要依据lastIndex提供的位置,由于这个原因,所以导致上例中result2的值为false。

3、处理方法:去除g;

即:var re = /^abc/g ;变为 var re = /^abc/;

以上这篇浅谈regExp的test方法取得的值变化的原因及处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# js  # regexp  # test  # JS正则RegExp.test()使用注意事项(不具有重复性)  # 注意 JavaScript 中 RegExp 对象的 test 方法  # 给大家  # 就会  # 却是  # 是从  # 希望能  # 第二个  # 如果没有  # 实际情况  # 这篇  # 浅谈  # 小编  # 值为  # 下次再  # 大家多多  # 有一个  # 应该是  # 使用了  # 结果是  # 修饰符  # 而是要 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何在云服务器上快速搭建个人网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  ,交易猫的商品怎么发布到网站上去?  WordPress 子目录安装中正确处理脚本路径的完整指南  如何在建站宝盒中设置产品搜索功能?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  如何彻底卸载建站之星软件?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Python文件操作最佳实践_稳定性说明【指导】  详解jQuery停止动画——stop()方法的使用  Laravel定时任务怎么设置_Laravel Crontab调度器配置  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  javascript日期怎么处理_如何格式化输出  jquery插件bootstrapValidator表单验证详解  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  北京企业网站设计制作公司,北京铁路集团官方网站?  Laravel怎么实现模型属性的自动加密  iOS中将个别页面强制横屏其他页面竖屏  Laravel如何生成URL和重定向?(路由助手函数)  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何在阿里云ECS服务器部署织梦CMS网站?  如何续费美橙建站之星域名及服务?  教你用AI将一段旋律扩展成一首完整的曲子  网站优化排名时,需要考虑哪些问题呢?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何在阿里云虚拟服务器快速搭建网站?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  使用PHP下载CSS文件中的所有图片【几行代码即可实现】