正则表达式知识点整理
来源:互联网 发布:网络消费者服务热线 编辑:程序博客网 时间:2024/05/16 09:53
一.创建正则表达式的两种方式
1. 通过构造函数定义:var 变量名 = new RegExp(/表达式/);
2.字面量:var 变量名 = /表达式/;
二.认识正则符号:
注:括号内,前面加个元字符^进行取反,表示匹配不能为括号里面的字符。eg:console.log(/[^abc]/.test(‘a’)); 答案是false;
三.元字符
1.基本元字符
.匹配任意的非换行字符,常常表示通用元字符使用[]匹配一个出现在[]中的字符,eg:[123],[a-z]()1.分组 2.提升优先级|或者 eg:foot|food表示匹配foot或者food 注:|的优先级很低
2.限定元字符
3.首尾元字符
4.其它
eg:
var s = '1234567'; var r1 = /(\d)(\d\d\d)(\d\d)(\d)/; r1.exec( s ); // => [ '1234567', '1', '234', '56', '7' ] var r2 = /(\d)(?:\d\d\d)(\d\d)(\d)/; r2.exec( s ); // => [ '1234567', '1', '56', '7' ]
四.方法
方法说明test用来检测字符串是否符合定义的正则规则exec利用正则表达式去处理字符串,并将字符串中符合正则表达式的数据提取出来,(1).如果匹配上了,就返回数组,第0项就是匹配到的结果(2)如果正则表达式 中有分组也就是有(),那么对应的第n组匹配到的结果就是在这个数组中的第n项,n从1开始(3)如果没有匹配的则返回null;replacereplace(正则表达式,需要替换的字符串)
1.exec方法的进一步说明:
(1)exec匹配提取,只能匹配提取第一个被捕获的数据
所以如果需要匹配字符串中所有符合要求的字符串,需要开启全局模式,这种情况下,调用一次exec方法就会在上一次的基础上匹配。
eg:
var data = '1234567'; var p = /\d/g; p.exec(data);//["1"] p.exec(data);//["2"] ... p.exec(data);//null p.exec(data);//["1"]一般我们通过以下方法实现:var a = "1234567ni";var p = /\d/g;var m;var arr = [];while((m = p.exec(a)) != null){ arr.push(m);}console.log(arr);
(2)正则表达式的贪婪模式:如果一个正则表达式中有多个.+或者.*的结构,那么在匹配的时候就会造成歧义,这时候就满足一个规则,即贪婪模式;在贪婪模式中,从左到右匹配个数的能力是左强右弱,而且是只有两个级别的,要么强,要么弱。
eg:
var ddd = "1234567"; "123456" "" "7"var pp = /(.+)(.*)(.+)/;pp.exec(ddd) //["1234567", "123456", "", "7"]
2.replace方法的进一步说明:
(1) 例如将var data = “abccdad”中的a全部替换成e;
data.replace(/[a]/g,"e");
(2)在替换中也可以使用到组
例如常用的更改年月日的显示方式,将2015-1-10改成2015年1月10日
var data = "2015-1-10";var pp = /(\d+)-(\d+)-(\d+)/;data.replace(pp,'$1年$2月$3日');
(3)在替换的时候,第二个参数也可以是一个函数,而函数的参数表示的是匹配到的数组的值,因此前边日期的替换我们可以利用函数的返回值替换匹配到的结果。
var data = "2015-1-10";var pp = /(\d+)-(\d+)-(\d+)/;data.replace(pp,function(match,n1,n2,n3){ return n1 + '年' + n2 + '月' + n3 + '月';})
1 0
- 正则表达式知识点整理
- 关于正则表达式的知识点整理
- 正则表达式——知识点整理
- javascript 正则表达式知识点总结:(转并整理)
- Java知识点整理:第八章:String 字符串、正则表达式
- 正则表达式 知识点
- 正则表达式知识点总结
- 正则表达式知识点汇集
- 正则表达式知识点总结
- 知识点五:正则表达式
- 正则表达式知识点记录
- 正则表达式知识点总结
- 正则表达式知识点小结
- 正则表达式知识点总结
- 正则表达式知识点归纳
- [.net]正则表达式整理
- [整理]常用正则表达式
- 正则表达式学习整理
- android EventBus的简单使用
- POJ - 1094 Sorting It All Out解题报告
- AngularJS进阶(十九)在AngularJS应用中集成百度地图实现定位功能
- 嵌入式C++开发详解(一)
- jQuery-ajaxStart方法
- 正则表达式知识点整理
- IOCP模型与EPOLL模型的比较
- svn报错:Cannot negotiate authentication mechanism
- MongoDB学习(三)——mongofiles实现GridFS
- 面向对象地分析Linux内核设备驱动(1):——Linux内核驱动中面向对象的基本规则和实现方法
- AngularJS进阶(十八)在AngularJS应用中集成科大讯飞语音输入功能
- MongoDB的安装以及连接(windows)
- 蓝桥杯算法训练:现日期计算X天后日期
- Android Things:来跑一个Demo耍耍