JavaScript:正则表达式 全局
2024-08-31 04:12:51
关于正则表达式的
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
最新文章
- iOS学习笔记---c语言第十一天
- Winform下WebBrowser 编辑模式 监听键盘按键事件
- 第五章 HID设备
- BZOJ_1588_&;_Codevs_1296_[HNOI2002]_营业额统计(平衡树/set)
- 试用mysql的infobright引擎
- php四舍五入函数(floor、ceil、round与intval)
- [eclipse] 三个操作技巧
- 如何在数据库中存储IP地址
- BZOJ3109: [cqoi2013]新数独
- 在nagios中监控windows主机系统地址的状态
- Maven-04: 三套生命周期
- EF Core使用SQL调用返回其他类型的查询
- win32程序之子窗口编程
- 那些令人迷惑的名词:切图/H5/XML/REST
- 大数据 - spark-sql 常用命令
- CheckedListBox  数据绑定
- abstract抽象
- vertical-align 详解
- Android 用java语言执行Shell命令
- CSS快速入门-前端布局1(抽屉)
热门文章
- pyqt5核心-信号与槽(第二弹)
- webpack笔记二——entry
- nodejs(二)child_process模块
- 应用笔画宽度变换(SWT)来检测自然场景中的文本
- fish shell 下gopath的设置问题
- 启动rabbitmq,提示ERROR: node with name ";rabbit"; already running on ";localhost";
- [sh]sh最佳实战(含grep)
- 用setup.py安装第三方包packages
- storm介绍,核心组件,编程模型
- loadrunner 接口性能脚本编写(Get请求和Post请求)