`

js 正则表达式的怪异

 
阅读更多

看例子吧

 

var reg = new RegExp("abc","gi");
console.log(reg.test("abc"));   
console.log(reg.test("abc"));  
console.log(reg.test("abc"));   
console.log(reg.test("abc"));
console.log(reg.test("abc"));   
console.log(reg.test("abc"));
console.log(reg.test("abc"));   
console.log(reg.test("abc"));

 惊奇的发现打印结果不一样啊

解决办法有3种 

var reg = new RegExp("abc","i");  
console.log(!!reg.match("abcd"));     
console.log(!!reg.match("abcd"));    
console.log(!!reg.match("abcd"));    
console.log(!!reg.match("abcd"));     
console.log(!!reg.match("abcd"));    
console.log(!!reg.match("abcd"));     
console.log(!!reg.match("abcd"));    
console.log(!!reg.match("abcd")); 

 

  2 

var reg = new RegExp("abc","gi");
reg.lastIndex=0;console.log(reg.test("abc"));   
reg.lastIndex=0;console.log(reg.test("abc"));  
reg.lastIndex=0;console.log(reg.test("abc"));   
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));   
reg.lastIndex=0;console.log(reg.test("abc"));
reg.lastIndex=0;console.log(reg.test("abc"));   
reg.lastIndex=0;console.log(reg.test("abc"));

 3

  

var reg = new RegExp("abc","gi");
var reg = new RegExp("abc","gi");  
console.log(!!'abc'.match(reg)); 
console.log(!!'abc'.match(reg)); 
console.log(!!'abc'.match(reg)); 
console.log(!!'abc'.match(reg)); 
console.log(!!'abc'.match(reg)); 
console.log(!!'abc'.match(reg)); 
分享到:
评论

相关推荐

    JS在IE和FF中的兼容性问题

    - `lastIndex` 属性:IE和FF对全局正则表达式匹配后的 `lastIndex` 处理不一致,可能导致无限循环。 8. **异常处理**: - `try...catch` 语句:IE和FF在错误类型和处理上存在差异,需谨慎处理。 9. **...

    JavaScript 高级程序设计高级程序设计_高清完美版

    - **使用场景**:正则表达式广泛应用于文本处理任务,如验证输入数据格式、搜索替换字符串等。 #### 十一、动态用户界面 - **DOM操作**:通过JavaScript动态创建、修改或删除DOM节点。 - **动画效果**:利用...

    js在火狐和IE浏览器的差异.zip

    本文件“js在火狐和IE浏览器的差异.zip”着重讨论了JavaScript在Mozilla Firefox(火狐)与Internet Explorer(IE)之间的区别,以下是对这些差异的详细阐述: 1. **DOM操作差异**: - Firefox和IE对Document ...

    [转]去百度面试的javascript 收获

    - 在使用正则表达式时,应该考虑性能因素,避免编写过于复杂或效率低下的正则表达式。 8. 浮动问题的解决方法: - 在清除浮动时,通常会在父容器后添加一个额外的div元素,并设置其style为clear:both。 - 为了...

    ExtJS判断IE浏览器类型的方法

    然后定义了一个名为check的函数,它接受一个正则表达式作为参数,并返回一个布尔值,指示用户代理字符串是否与正则表达式匹配。这一函数本质上是一个简化版的正则表达式测试函数。 紧接着,代码会进行一系列的判断...

    前端笔试面试题目总结.pdf

    23. 正则表达式的元字符和模式:如`^`(行首)、`$`(行尾)、`\d`(数字)、`\w`(字母数字)等,用于构建复杂匹配规则。 以上是前端笔试面试中常见的知识点,深入理解和熟练运用这些概念对于成为一名优秀的前端...

    prometheus-explorer:用于Prometheus的轻量级指标浏览器,专注于实时分析

    :sparkles: 使用正则表达式搜索指标 :sparkles: 为常用查询定义自定义快捷方式 variables : cluster : eu shortcuts : # cpu usage of pods of $service running in $cluster - regexp : " cpu of (.*) " query ...

    Javascript的IE和Firefox兼容性问题集合

    7. **正则表达式**:IE6-8的一些正则特性不全,如全局标志g和i在某些情况下表现异常。可以使用try...catch语句或条件判断来规避。 8. **Date对象**:IE和Firefox对Date对象的解析和格式化可能存在差异,需注意处理...

    tinalla:这不是另一种Livecoding语言

    someone@mail.com ,邮件严格具有@ ,具有托管和别名,不应有空格或怪异字符,我们可以将过滤电子邮件的正则表达式描述为[a-zA-Z0-9-_]+@[a-zA-Z0-9-_]+\.com ,其中az表示任何有两个编辑器,一个是可以编写流畅

    web前端问题[归类].pdf

    - 涉及HTTP协议、安全性、正则表达式、性能优化、代码重构、响应式设计、移动端开发、团队协作、代码可维护性、SEO、用户体验设计(UED)和架构设计。 14. **DOM操作**: - DOM允许我们动态地添加、删除、移动、...

    pdf-text-denoiser:修复因复制粘贴pdf(特别是pdf.js)而产生的怪异现象

    `pdf-text-denoiser`通过正则表达式和字符串处理技术来清除这些噪声,使文本更易于阅读和处理。 4. **文本整理**:PDF中的文本布局信息可能在复制过程中丢失,导致粘贴的文本格式混乱。`pdf-text-denoiser`可能通过...

    PHP架构师 指南 设计

    而Perl正则表达式更为强大和灵活,支持更多的特性和语法结构。 **Safe_mode打开后的限制** - 文件上传路径受限。 - 运行的脚本只能访问特定目录下的文件。 - 允许访问的外部命令受限。 **解决多进程/线程同时读写...

    前端开发面试题

    - **RegEXP**:正则表达式,用于文本处理的模式匹配,是前端开发中不可或缺的知识点。 - **JSON**:JavaScript Object Notation,一种轻量级的数据交换格式,熟悉其结构及用法对前后端数据交互至关重要。 - **Ajax**...

    如何判断PC端浏览器内核

    通过正则表达式匹配浏览器代理字符串中的特定标识,比如"msie"或"trident",来判断是否是IE浏览器。IE 11之前版本的浏览器代理字符串中含有"msie",而IE 11开始使用"trident"。这可以帮助开发者检测访问的用户是否...

    页面刷新时记住滚动条的位置jquery代码

    如果存在,那么通过正则表达式匹配得到该值,并将页面的滚动条位置设置为该值。 这里用到的cookies是浏览器提供的一个轻量级的存储机制,它允许我们存储少量的数据在用户的计算机上,并且这些数据会在用户的请求中...

Global site tag (gtag.js) - Google Analytics