正则表达式·JS
http://www.jianshu.com/p/81fdd0a1e7d4
创建一个正则表达式
第一种方法:
var reg = /pattern/;
第二种方法:
var reg = new RegExp('pattern');
正则表达式的exec方法简介
exec() 方法用于检索字符串中的正则表达式的匹配。
语法
RegExpObject.exec(string) //返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
c{n}
{1}表示一个的意思。
/c{1}/只能匹配一个c。
/c{2}/则会匹配两个连续的c。
以此类推
*,+,?
*表示0次或者多次,等同于{0,},即
c* 和 c{0,} 是一个意思。
+表示一次或者多次,等同于{1,},即
c+ 和 c{1,} 是一个意思。
最后,?表示0次或者1次,等同于{0,1},即
c? 和 c{0,1} 是一个意思
贪心与非贪心
人都是贪婪的,正则也是如此。我们在例子reg = /c{3,4}/;str='ccccTest';的例子中已经看到了,能匹配四个的时候,正则绝对不会去匹配三个。上面所介绍的所有的正则都是这样,只要在合法的情况下,它们会尽量多去匹配字符,这就叫做贪心模式。
如果我们希望正则尽量少地匹配字符,那么就可以在表示数字的符号后面加上一个?。组成如下的形式:
{n,}?, *?, +?, ??, {m,n}?
点’.’
‘.’会匹配字符串中除了换行符\n之外的所有字符
二选一,正则表达式中的或,“|“
b|c表示,匹配b或者c。
字符集合[abc]
[abc]表示a或者b或者c中的任意一个字符
我们在字字符集合中使用如下的表示方式:[a-z],[A-Z],[0-9],分别表示小写字母,大写字母,数字。
反字符集合[^abc]
^在正则表达式开始部分的时候表示开头的意思,例如/^c/表示开头是c;但是在字符集和中,它表示的是类似“非“的意思,例如[^abc]就表示不能是a,b或者c中的任何一个
由此我们可知:[^0-9]表示非数字,[^a-z]表示非小写字母
边界与非边界
\b表示的边界的意思,也就是说,只有字符串的开头和结尾才算数。例如/\bc/就表示字符串开始的c或者是结尾的c。与\b对应\B表示非边界。
数字与非数字
\d表示数字的意思,相反,\D表示非数字。
空白
\f匹配换页符,\n匹配换行符,\r匹配回车,\t匹配制表符,\v匹配垂直制表符。
\s匹配单个空格,等同于[\f\n\r\t\v]。
reg = /\s.+/; str='This is a test String.'; reg.exec(str);//“is a test String.”,正则的意思是匹配第一个空格以及其后的所有非换行字符。
同样,\S表示非空格字符。
\w表示单词字符,等同于字符集合[a-zA-Z0-9_]。
反向引用
形式如下:/(子正则表达式)\1/
正向预查
形式:(?=pattern)
所谓正向预查,意思就是:要匹配的字符串,后面必须紧跟着pattern!
全局匹配,修饰符g
形式:/pattern/g
不区分大小写,修饰符i
形式:/pattern/i
行首行尾,修饰符m
形式:/pattern/m

浙公网安备 33010602011771号