文档章节

JavaScript 正则表达式对象RegExp test方法慎用/g

二分之一
 二分之一
发布于 2014/06/09 10:20
字数 299
阅读 1429
收藏 4
点赞 0
评论 0

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;

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

因此使用RegExp的test方法

© 著作权归作者所有

共有 人打赏支持
二分之一
粉丝 12
博文 28
码字总数 9595
作品 0
唐山
程序员
JavaScript零基础入门——(七)当字符串遇上正则表达式

JavaScript零基础入门——(七)当字符串遇上正则表达式 欢迎大家回到我们的JavaScript零基础入门,上一节课,我们学习了几种常用的字符串处理的方法,但上节课我们也说了,原生的字符串处理...

JandenMa ⋅ 06/16 ⋅ 0

JavaScript学习记录day9-标准对象

JavaScript学习记录day9-标准对象 [TOC] 在JavaScript的世界里,一切都是对象。 但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用操作符获取对象的类型,它总是返回一个字符...

ygqygq2 ⋅ 06/11 ⋅ 0

精通 JavaScript中的正则表达式

相关文章: JS正则表达式详解[收藏] Javascript正则表达式笔记 javascript基础知识大集锦(2) JavaScript精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式。例如,可...

闵开慧 ⋅ 2013/04/08 ⋅ 0

JavaWeb01-HTML篇笔记(七)

.1 案例三:完成对注册页面的数据的简单校验.1.1.1 需求: 对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!! 1.1.2 分析:1.1.2.1 技术分...

我是小谷粒 ⋅ 04/28 ⋅ 0

js 正则表达式 replace 和 match

test方法 检索字符串中指定的值。返回 true 或 false。 如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。...

阿豪boy ⋅ 02/16 ⋅ 0

JS与正则表达式相关的方法总结

regexp实例方法 exec() exec()是专门为捕获组设计的方法,exec接受一个参数,即需要应用正则的字符串,返回一个数组,或者没有匹配的时候返回null。注:/^/.exec(‘str’)返回一个数组,第一...

静默行 ⋅ 06/07 ⋅ 0

JS正则表达式大全

正则表达式中的特殊字符 字符 含意 做为转意,即通常在""后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的...

DavidBao ⋅ 2015/09/30 ⋅ 0

js中replace的用法-正则替换

replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串...

cheese ⋅ 2012/08/01 ⋅ 1

JS正则表达式大全(整理详细且实用)

正则表达式中的特殊字符 字符 含意 做为转意,即通常在""后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的...

豆花饭烧土豆 ⋅ 2016/07/26 ⋅ 0

JavaScript学习笔记整理(六)

RegExp对象:js中专门疯转一条正则表达式,提供使用正则表达式的常用API 在使用正则表达式时,必须创建RegExp 创建正则表达式:var RegExp=/正则表达式/ig; RegExp的方法 test()检索字符串中指...

weixin_36171533 ⋅ 2017/11/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 8分钟前 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 13分钟前 ⋅ 0

Redis入门详解(转)

Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis应用场景 Redis总结 Redis简介: Redi...

xiaoyaoyoufang ⋅ 25分钟前 ⋅ 0

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 45分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 今天 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部