JS正则表达式学习之路:(二)用于模式匹配的String方法
来源:互联网 发布:奥飞游戏 知乎 编辑:程序博客网 时间:2024/06/01 17:39
2.1 search方法
它的参数是一个正则表达式,返回第一个与之匹配的子串的起始位置,如果找不到匹配的子串,它将返回-1,比如下面的返回值是4:
"JavaScript".search(/Script/i);
如果search()的参数不是正则表达式,则首先会通过RegExp构造方法将它转换成正则表达式,search()方法不支持全局检索,因为它忽略正则表达式参数中的修饰符g。
2.2 replace方法
replace方法用以执行检索和替换操作。其中第一个参数是正则表达式,第二个参数是要进行替换的字符串。这个方法会对调用它的字符串进行检索,使用指定的模式来匹配。
如果replace()的 第一个参数是字符串而不是正则表达式,则replace()将直接收索这个字符串,而不是像search()一样首先通过RegExp将它转换为正则表达式。例如,
// 将所有不区分大小写的javascript都替换成大小写正确的JavaScript
text.replace(/javascript/gi,"JavaScript");
如果在替换字符串中出现了$加数字,那么replace()将用与制定的子表达式相匹配的文本来替换这两个字符。比如可以用它将一个字符串中的英文引号替换为中文半角引号,
// 一段引用文本起始于引号,结束与引号
// 中间的内容区域不能包含引号
var quote = /"([^"])*"/g;
// 用中文半角引号替换英文引号,同时要保持引号之间的内容(存储在$1中),没有被修改
text.replace(quote, '“$1”');
这里的$1就是指代的是括号中匹配的字符串,因此可以得到保存,比如下面的例子,
var text = 'Tomorrow is "another" day';
var quote = /"([^"])*"/g;
text.replace(quote, '“$1”'); //返回 'Tomorrow is “another” day';
2.3 match方法
它的唯一参数就是一个正在表达式(或通过RegExp()构造函数将其转换为正则表达式),返回的是一个由匹配结果组成的数组。如果该正则表达式设置了修饰符g,则该方法返回的数组包含字符串中的所有匹配结果。例如:
"1 plus 2 equals 3".match(/\d+/g); // 返回["1","2","3"]
如果这个正则表达式没有设置修饰符g,match()就不会进行全局检索,它只检索第一个匹配。但即使match()执行的不是全局检索,它也会返回一个数组。这种情况下,数组的第一个元素就是匹配的字符串,余下的元素则是正则表达式中用圆括号括起来的子表达式。例如,
var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my blog at http://www.example.com/~david";
var result = text.match(url);
if(result != null) {
var fullurl = result[0]; //包含"http://www.example.com/~david"
var protocol = result[1]; //包含"http"
var host = result[2]; //包含"www.example.com"
var path = result[3]; //包含"~david"
}
2.4 split方法
这个方法用以将调用它的字符串拆分成一个子串组成的数组,使用的分隔符是split()的参数。例如,
"123,456,789".split(","); //返回["123","456","789"]
split()方法的参数也可以是一个正则表达式,这使得split()方法异常强大。例如,可以指定分隔符,允许两边可以留任意多的空白符:
"1, 2, 3, 4, 5".split(/\s*,\s*/); 返回["1","2","3","4","5"]
- JS正则表达式学习之路:(二)用于模式匹配的String方法
- 正则表达式用于模式匹配的String方法
- 用于正则表达式模式匹配的String方法
- 【js学习笔记-062】用于模式匹配的String方法
- 犀牛——第10章正则表达式的模式匹配 10.2用于模式匹配的String方法10
- JavaScript权威指南_88_第10章_正则表达式的模式匹配_10.2-用于模式匹配的String方法
- 浅析正则表达式模式匹配的String方法
- JavaScript:用于模式匹配的String方法
- JS学习十二天----正则表达式的模式匹配
- JS中正则表达式的模式匹配
- js正则表达式的几个匹配方法
- js中使用正则表达式(二)操作正则表达式的对象RegExp、String和方法
- js正则表达式--String的几个正则表达式方法
- 第11章 使用正则表达式的模式匹配(二)
- 正则表达式的模式匹配
- 常用正则表达式(用于匹配)
- 正则表达式和模式匹配简介(二)
- 正则表达式的语法、RegExp对象的匹配方法、String对象的匹配方法
- windows下拉菜单截图
- python库安装的一些错误
- 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
- Android插件开发初探——基础篇
- [web安全] XSS的防御
- JS正则表达式学习之路:(二)用于模式匹配的String方法
- Phoenix(四)JDBC CRUD操作
- Android内存优化之一:MAT使用入门
- ToggleButton开关按钮
- 对NGUI的UISprite和UITexture进行裁剪,圆形裁剪
- tomcat多域名配置
- JS正则表达式学习之路:(三)RegExp对象
- nRF51822使用Timer制作4路PWM波详解
- 在界面上使用URI编程