用于正则表达式模式匹配的String方法
来源:互联网 发布:西南大学网络教育2017 编辑:程序博客网 时间:2024/06/06 21:07
Sting支持4种使用正则表达式的方法。最简单的时search().他的参数时一个正则表达式,返回第一个与之匹配的子串的的起始位置,如果找不到匹配的子串,它将返回-1。比如,下面的调用返回值为4:
var a = "javascript".search(/script/i);
如果search()的参数不是正则表达式,则首先会通过RegExp构造函数将它转换为正则表达式,search()方法不支持全局检索,因为他会忽略正则表达式参数中的修饰符g.
2.replace()方法用以执行检索和替换操作。其中第一个参数是一个正则表达式,第二个参数是要进行替换的字符串,如果replace()的第一个参数是字符串而不是正则表达式,则replace()将直接搜索这个字符串,而不是像所有不区分大小写的search()一样首先通过RegExp()将它转换为正则表达式。如下代码
text.replace(/javascript/gi,"JavaScript");//将 所有不区分大小写的javascript都换成大小写正确的JavaScript.
但replace()的功能远不止这些。如果在字符串中出现了$加数字,那么replace()将用与指定的子表达式相匹配的文本来替换这两个字符。如下代码
var quote = /"([^"]*)"/g; //将一个字符串的英文引号替换为中文半角引号
var text = '"zhangrui"';
console.log(text.replace(quote," “$1” "));
3.match()方法是最常用的正则表达式的方法。它的唯一参数就是一个正则表达式,返回的是有匹配结果组成的数组。
"1 plus 2 equals 3”.match(/\d+/g) //返回["1","2","3"]
如果match()返回一个数组a,那么a[0]存放的是完整的匹配,a[1]存放的是与第一个圆括号括起来的表达式相匹配的子串,以此类推。看如下代码就会明白:
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 protocal = result[1];//包含 "http"
var host = result[2];//包含 "www.example.com"
var path = result[3];//包含"~david"
}
4.split() 这个比较简单,我就不介绍了。看代码就能明白
"123,456,789".split(",");//返回["123","456","789"]
"1, 2 , 3 , 4, 5, 6, 7".split(/\s*,\s*/);//可指定分隔符,允许两边可以留有任意多的空白符 返回结果为["1","2","3","4","5","7"]
- 正则表达式用于模式匹配的String方法
- 用于正则表达式模式匹配的String方法
- JS正则表达式学习之路:(二)用于模式匹配的String方法
- 犀牛——第10章正则表达式的模式匹配 10.2用于模式匹配的String方法10
- JavaScript权威指南_88_第10章_正则表达式的模式匹配_10.2-用于模式匹配的String方法
- 浅析正则表达式模式匹配的String方法
- JavaScript:用于模式匹配的String方法
- 【js学习笔记-062】用于模式匹配的String方法
- 正则表达式的模式匹配
- 常用正则表达式(用于匹配)
- 正则表达式的语法、RegExp对象的匹配方法、String对象的匹配方法
- 用于模式匹配的RegExp方法
- JavaScript 用于模式匹配的 RegExp 方法
- 正则表达式-匹配模式
- 正则表达式的3种匹配模式
- 正则表达式的3种匹配模式
- 使用正则表达式的模式匹配
- Grep模式匹配的正则表达式
- EditText不自动弹出键盘,界面退出隐藏键盘
- 【C/C++】链表的理解与使用
- leveldb(一):AtomicPointer
- Codeforces821B Okabe and Banana Trees
- placeholder兼容ie和password
- 用于正则表达式模式匹配的String方法
- 大家好,我是黑客H,我为M高校的网络安全带盐!
- 金山词霸每日一句
- java mongodb aggregate用法
- 关于sublime text3乱码问题
- 十五分钟介绍 Redis数据结构
- [我的作死案例]图书馆泡妹记 上
- C# GC疑问
- 响应式网页设计(Responsive web design)入门级定义