正则表达式的理解:
正则表达式可以帮助我们更好的描述复杂的文本格式。一旦你描述清楚了这些格式,那你就可以利用它们对文本数据进行检索、替换、提取和修改操作。
在一些输入框和文本提取的时候,正则表达式真的是重要,这次终于是稍微入门了,以前一直没有耐心看。
其实正则表达式的内容也不算很多,我觉得能看懂一些基本就很可以了,一些复杂的正则表达式都可以在网上搜索的到。
要点1:3个重要的正则表达式命令
括号:
[:表示需要匹配的内容
{:需要匹配的数量
(:分组(这个可以自己再深入了解一下)
插入符号:
^:正则表达式的开始
美元符号:
$:正则表达式的结束
实例演示:Email格式
第一步:email开始是长度在1-10的英文字母,最后跟一个"@":^[a-zA-Z0-9]{1,10}@
第二步:@后面是长度在1-10的英文字母,后面跟一个".":[a-zA-Z]{1,10}.
第三步:最后以.com或.org结束:(com|org)$
最终表达式:^[a-zA-Z0-9]{1,10}@[a-zA-Z]{1,10}.(com|org)$
要点2:正则表达式的标记
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)
要点3:一些快捷命令
[0-9]:\d
[a-z][0-9][_]:\w
0次或多次发生:*
至少一次发生:+
0次或1次发生:?
要点4:常用的一些方法
test:是否存在,返回值为boolean
exec:查找,返回数组
var reg=/\d/g;
var r=reg.exec('a1b2c3');
console.log(reg.lastIndex); //2
r=reg.exec('a1b2c3');
console.log(reg.lastIndex); //4
search:检索,返回索引下标
match:检索,返回数组和Null(有无标记g:1.无g,执行一次匹配,遇到即止,2.有g,则相反)
简单的测试:
var r='abc'.match(/\w/g);
console.info(r);
结果:
无g:
replace:替换,返回字符串
我们最常用的时传入两个字符串的做法,但这种做法有个缺陷,只能replace一次
console.info('abcabc'.replace('abc','N')); //Nabc
replace方法的第一个参数还可以传入RegExp对象,传入正则表达式可以时replace方法更加强大灵活
console.info('abcabc'.replace(/abc/g,'N')); //NN
split:分割,返回数组和null
我们经常使用split方法把字符串分割为字符数组
console.info('a,b,c'.split(',')); //["a", "b", "c"]
和replace方法类似,在一些复杂的分割情况下我们可以使用正则表达式解决
console.info('a1b2c3d'.split(/\d/)); //["a", "b", "c", "d"]