JavaScript:正则表达式 全局
关于正则表达式的
RegExp方法:test,exec,
String 方法:match,search,
全局 g
var str = "abababa";
var re = /a/g;
console.log(re.test(str)); console.log(re.lastIndex);
console.log(re.test(str)); console.log(re.lastIndex);
console.log(re.test(str)); console.log(re.lastIndex);
console.log(re.test(str)); console.log(re.lastIndex);
console.log(re.test(str)); console.log(re.lastIndex);
console.log(re.test(str)); console.log(re.lastIndex);

var str = "abababa";
var re = /a/g;
show(); show(); show(); show(); show(); show();
function show(){
console.log(re.lastIndex);
console.log(re.exec(str));
}

发现:全局不是一次性都全部匹配的
先匹配一个,再将下一次要开始匹配的索引放置在lastIndex中。
但是这样
var str = "uuuabababa";
var re = /a/g;
console.log(str.replace(re,'c'));
str中的a也全部替换成c了,why?
全局查找,有索引,有内容
function execAll(str, reg) {
var list = [];
var result = [];
while (result) {
result = reg.exec(str);
if (result) {
list.push(result);
}
}
return list;
}
String.prototype.execAll = function (reg) {
return execAll(this, reg);
}
var str = " hong da qi hong da ";
var list = str.execAll(/\s\b\w+\b/g);
console.dir(list);

哇,我好牛啊!
哈哈哈哈哈哈哈!
match
var res=str.match(/\s\b\w+\b/);
console.dir(res);

没有索引
当不是全局时,match,exec
var str = " hong da qi hong da ";
var list =(/\s\b\w+\b/).exec(str);
console.dir(list);
var res=str.match(/\s\b\w+\b/);
console.dir(res);

结果是一样的。
http://www.iteye.com/topic/481228
http://blog.csdn.net/lxcnn/article/details/4304651
http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
JavaScript:正则表达式 全局的更多相关文章
- 理清JavaScript正则表达式--上篇
在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...
- 理清JavaScript正则表达式--下篇
紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
- Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识
本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- JavaScript正则表达式下——相关方法
上篇博客JavaScript 正则表达式上——基本语法介绍了JavaScript正则表达式的语法,有了这些基本知识,可以看看正则表达式在JavaScript的应用了,在一切开始之前,看看RegExp实 ...
- javascript正则表达式简介
javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String ...
- javascript正则表达式(一)——语法
前言 js中类RegExp类表示正则表达式,具有强大的模式匹配.文本检索和替换功能.正则表达式的模式规则是由一个字符序列组成,包括所有字母和数字在内,大多数的字符都是按照直接量匹配字符,某些特殊字符并 ...
- 5分钟教你学会JavaScript正则表达式
正则表达式在实际开发过程中和技术面试过程中的重要性不言而喻,本文仅仅只是教你如何在几分钟之类学会正则表达式,对于它的原理及运行机制不做介绍. 第一:什么是正则 正则表达式是一种用来描述一定数量文本的模 ...
- 理清JavaScript正则表达式
理清JavaScript正则表达式--下篇 紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是 ...
随机推荐
- Memcached集群架构方面的问题(转)
add by zhj: 这是一个系列中的第二篇,该系列有四篇,英文原文没找到,译文见:http://blog.csdn.net/jarfield/article/details/4336035 ,附上 ...
- python基础班-淘宝-目录.txt
卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python基础班-淘宝-目录.txt│ ├─1-1 Linux基础│ ├─01-课程简介│ │ 01-课程 ...
- OC导航栏自定义返回按钮
[iOS]让我们一次性解决导航栏的所有问题 在默认情况下,导航栏返回按钮长这个样子 导航栏默认返回按钮 导航栏左上角的返回按钮,其文本默认为上一个ViewController的标题,如果上一个Vi ...
- 高性能mysql 第1,2,3章。
一: 第一章 1:使用事务 start transaction; select * from t1; commit; 2:查看事务状态 mysql> show variables like 'a ...
- word中拷贝图片到matlab
完全可以! step1:在wod用鼠标右键复制 step2:打开附件-画图,点工具栏-编辑-粘贴(或ctl+v) step3:在MATLAB中调用A = imead(filename) 例如A=ime ...
- [sh]sh最佳实战(含grep)
sh虐我千百遍,我待sh如初恋. sh复习资料 http://www.cnblogs.com/iiiiher/p/5385108.html http://blog.csdn.net/iiiiher/a ...
- [py]django模板继承
参考 1.展示arr,d等数据类型 2.逻辑for if / url获取 3.获取内置变量 django模板继承 通过搞一个base.html 这个base.html可以包含两类 block片断 其他 ...
- Mysql查询一个表的所有字段名
select COLUMN_NAME from information_schema.`COLUMNS` -- 这行不变,照抄 where TABLE_SCHEMA = 'xerp' ...
- angular前端框架
总所周知,在前端开发中,大家用的比较多的框架就是angular,vue,react等,今天就为大家讲一下angular大家框架的原理及运用 1.本次所举的例子是以依赖require.js的, < ...
- Summary: Java Inheritance
In this tutorial we will discuss about the inheritance in Java. The most fundamental element of Java ...