关于正则表达式的

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

最新文章

  1. iOS学习笔记---c语言第十一天
  2. Winform下WebBrowser 编辑模式 监听键盘按键事件
  3. 第五章 HID设备
  4. BZOJ_1588_&_Codevs_1296_[HNOI2002]_营业额统计(平衡树/set)
  5. 试用mysql的infobright引擎
  6. php四舍五入函数(floor、ceil、round与intval)
  7. [eclipse] 三个操作技巧
  8. 如何在数据库中存储IP地址
  9. BZOJ3109: [cqoi2013]新数独
  10. 在nagios中监控windows主机系统地址的状态
  11. Maven-04: 三套生命周期
  12. EF Core使用SQL调用返回其他类型的查询
  13. win32程序之子窗口编程
  14. 那些令人迷惑的名词:切图/H5/XML/REST
  15. 大数据 - spark-sql 常用命令
  16. CheckedListBox  数据绑定
  17. abstract抽象
  18. vertical-align 详解
  19. Android 用java语言执行Shell命令
  20. CSS快速入门-前端布局1(抽屉)

热门文章

  1. pyqt5核心-信号与槽(第二弹)
  2. webpack笔记二——entry
  3. nodejs(二)child_process模块
  4. 应用笔画宽度变换(SWT)来检测自然场景中的文本
  5. fish shell 下gopath的设置问题
  6. 启动rabbitmq,提示ERROR: node with name "rabbit" already running on "localhost"
  7. [sh]sh最佳实战(含grep)
  8. 用setup.py安装第三方包packages
  9. storm介绍,核心组件,编程模型
  10. loadrunner 接口性能脚本编写(Get请求和Post请求)