正则表达式读书笔记

tag: regexpression, lastIndex, g,exec,match, replace, common, collection
 
  
source link: js常用正则表达式: http://www.cnblogs.com/zfc2201/archive/2012/12/18/2824107.html
常用的正则表达式收集:http://www.cnblogs.com/skylar/p/3673031.html
玩转正则之highlight高亮: http://www.cnblogs.com/hustskyking/p/javascript-regexp.html
var  regexp = /aabb/g; //g可省
var  regexp = new Regexp("xyz","g"); //第二个参数可省

区别在于:

1.采用字面量的写法新建的正则表达式对象在代码编译时就会生成,是平常开发中常用的方式;

2.采用构造函数生成的正则对象要在代码运行时生成。

经过我测试,第二个方式有syntax error
 
属性:
ignoreCase //返回一个布尔值表示正则对象是否设置了i修饰符,是一个只读属性2 global //表示正则对象是否设置了g修饰符,返回布尔值3 multiline //表示是否设置了m修饰符,返回一个布尔值4 lastIndex //返回下一次开始搜索的位置,该属性可读写,但只在设置了g修饰符时有意义5 source //返回正则表达式的字符串形式(不包括反斜杠),只读属性
 
 
1  i  --执行忽略大小写的匹配
2  g  --执行全局匹配(可以查看所有的匹配而不是只找到第一个匹配后就停止)
3  m  --执行多行匹配

正则表达式读书笔记_第1张图片

test方法返回布尔值,用来验证字符串是否符合某个模式。如果正则表达式带有g修饰符,则每一次test方法都从上一次匹配结束的位置开始匹配。

使用了g修饰符的正则对象,表示要记录搜索的位置,接着使用test方法,每次开始搜索的委会都是上一次匹配的后一个位置:

正则表达式读书笔记_第2张图片

exec()返回匹配的结果,匹配成功exec方法返回装有匹配结果的数组,匹配失败返回null:

正则表达式读书笔记_第3张图片

如果正则表达式包含圆括号,则返回的数组会包括多个元素。首先是整个匹配成功的结果,后面是圆括号里匹配成功的结果,如果有多个圆括号,他们的匹配成功的结果都会成为数组元素:

var str = "_a_x_x";

var reg = /_(x)_(x)/;

var result = reg.exec(str);

 

 

1 input --整个原待匹配的字符串
2 index --整个模式匹配成功的开始位置
正则表达式读书笔记_第4张图片

字符串

 

match()方法

字符串对象的match方法与正则对象的exec方法比较类似:

正则表达式读书笔记_第5张图片

但是如果正则表达式带有g修饰符,那么match方法与exec方法就有差别了:

正则表达式读书笔记_第6张图片

可以看到match返回了所有成功匹配的结果,但是exec方法只返回了一个。

 replace方法

str.replace('搜索模式','替换的内容');

正则表达式读书笔记_第7张图片

可以看到,如果正则表达式不带g修饰符,那么replace方法会替换第一个匹配成功的结果,如果加上了g修饰符,那么会替换所有匹配成功的值。

replace方法的第二个参数可以使用$符号,用来指代所要替换的内容:

1 $&-----指代匹配的字符串
2 $`-----匹配结果前面的文本
3 $'-----匹配结果后面的文本
4$n-----指代匹配成功的第n组内容,n从1开始
5 $$-----指代美元符号$
replace方法的第二个参数也可以是函数,用于将第一个参数匹配到的值替换为函数返回值。
正则表达式读书笔记_第8张图片
整数或小数
 
var number = /^[0-9]+\.{0,1}[0-9]{0,2}$/;
console.log( number.test("3435"));
console.log( number.test("3435.34"));
console.log( number.test("3435a"));
 
 
 
 
 

你可能感兴趣的:(正则表达式)