浅入javascript正则表达式的规则.
2014-04-08 09:08
309 查看
今天在看jQuery源码的时候,到处都是正则的用法,一气之下就狠下心来.重新回顾了一下正则.下面是做的笔记.非常浅的入门.
/* i:表示不区分大小写 g:表示可以全局配置 m:表示可以多行配置 */ /* ^:表示从字符串的第一个位置开始匹配 */ var result = false; var str = "guoGuo"; var reg = /^gu/; //匹配字符串是否已gu开头 result = reg.test(str);//true /* $:匹配字符串的尾端 */ str = "guoyansi"; reg = /i$/;//是否已i结尾 result = reg.test(str); //true /* *:匹配前一个字符0次或多次 /a星号/:以a开头开始匹配,如果匹配到a,则返回a,否则返回null /ab星号/:以a开头开始匹配,如果匹配到了a,返回a,匹配到了abbb...返回abbb.... 0次:没有b的就匹配a 多次:有a,后面不论多少个b,都匹配出来abbb.... */ str = "dadbudabbbbc"; reg = /du*/g; result = str.match(reg); /* +:匹配前一个字符一次或多次 /a+/:以a开头开始匹配,如果匹配到a,则返回a,否则返回null /ab+/:以a开头开始匹配,如果匹配到了a,并且在a后面匹配到了b,则返回abbb...; 1次:表示a后面没有b,就不返回.如果有b则返回ab.有一个b则返回一个b 多次:表示a后面没有b,就不返回.如果有b则返回ab.有多个b则返回多个b */ str = "ddadbbbbc"; reg = /ab+/g; result = str.match(reg); /* ?:一般是对前一个字符的0次或1次匹配; 0:没有就是0次 1:有就匹配一次 */ str = "ddabbdbbbbabbc"; reg = /ab?/g; result = str.match(reg); //ab,ab /* ?在星号和+,{},?后面,表示原始匹配的最小次数 星号最小次数0; +:最小次数是1 */ str = "ddabbdbbbbabbc"; reg = /ab*?/g; result = str.match(reg); //a,a reg = /ab+?/g; result = str.match(reg); //ab,ab /* .(点号):匹配一个单独的字符 */ str = "guoaaaaagio"; reg = /g.o/g; result = str.match(reg); //guo /* (xxx):匹配字符串 */ str = "guoooooaaaaagjao"; reg = /g(uo*)a/g; result = str.match(reg); //guoooooa /* x(?=y):匹配x,并且只有紧跟的后面是y */ str = "guoyansi"; reg = /uo(?=yan)/g; result = str.match(reg); //uo /* x(?!y):匹配x,并且紧跟后面的不是y */ str = "guoyansi"; reg = /uo(?!yan)/g; result = str.match(reg); //null str = "guoyanuosi"; result = str.match(reg); //uo(后面一个uo) reg = /\d+(?!\.)/g; /*匹配数组,*/ str = "54.235"; /*从数字开始匹配,匹配到之后,紧跟着后面的不能是数组*/ result = str.match(reg); //5,235 /* \d:匹配数字字符 */ reg = /\d/g; str = "123859"; result = str.match(reg); //1,2,3,8,5,9 /* \D:匹配非数字字符 */ str = "abc1hfd8dsv"; reg = /\D/g; result = str.match(reg); //a,b,c,h,f,d,d,s,v /* x|y:匹配x或y,如果x,y都匹配上了,返回x */ reg = /uo|n/g; str = "nguoyansi"; result = str.match(reg); //n,uo,n(在没有g的情况下,返回n) /* {n}匹配前一个字符的n次出现 */ str = "tabbcdabbt"; reg = /ab{2}/g; result = str.match(reg); //abb,abb /* {n,}匹配前一个字符至少出现n次数 */ str = "tabbbbbcdabbt"; reg = /ab{2,}/g; result = str.match(reg); //abbbbb,abb /* {n,m}匹配前一个字符至少出现n次,至多出现m次 */ str = "tabbbbbbcabbbbbbbdabbt"; reg = /ab{2,4}/g; result = str.match(reg); //abbbbb,abbbb,abb str = "tabbbbcabbbbbbbdabbt"; reg = /ab{2,4}c/g; result = str.match(reg); //abbbbc /* [xyz]:匹配[]的一个字符,等同于[a-z],只匹配其中的一个字符,如果匹配到多个,则返回null */ str = "abddgacdg"; reg = /a[bc]d/g; result = str.match(reg); //abd,acd(bc连一起,就匹配不到) /* [^xyz]:匹配非[]中的一个字符 */ str = "abd"; reg = /a[^bc]d/; result = str.match(reg); //null str = "afddgatdg"; reg = /a[^bc]d/g; result = str.match(reg); //afd,atd /* [\b]:匹配退格键 */ /* \b:匹配一个词的边界符,例如空格或换行等等,当匹配换行符是,匹配参数m */ reg = /\bc./g; str = "Beijing is ca cbeautiful city"; result = str.match(reg); //ca,cb,ci /* \B:代表一个非边界 */ reg = /\Bi./g; str = "Beijing is a beautiful city"; result = str.match(reg); //ij,in,if,it /* \f:匹配一个换页符 */ /* \n:匹配一个换行符,因为是换行符,所以要加入参数m */ /* \r:匹配回车符 */ /* \s:匹配空格符 */ str = "ab cd t"; reg = /b[\s]c/g; result = str.match(reg); //b c /* \S:匹配非空格 */ str = "guoy ansiguoyansi"; reg = /y[\S]n/g; result = str.match(reg); //yan /* \t:匹配横向的tab */ /* \v:匹配竖向的tab */ /* \w:匹配数字、_或字母[a-zA-Z0-9] */ str = "g1u中5国ir人_r"; reg = /\w/g; result = str.match(reg); //g,1,u,5,i,r,_,r /* \W:匹配飞数字、_或字母[^a-zA-Z0-9] */ str = "g1u中5国ir人_r"; reg = /\W/g; result = str.match(reg); //中,国,人
相关文章推荐
- JavaScript 正则表达式的规则和使用
- 正则表达式语法规则及在Javascript和C#中的使用方法
- 正则表达式语法规则及在Javascript和C#中的使用方法
- JavaScript中正则表达式判断匹配规则及常用方法
- 浅入javascript正则表达式的规则.
- 浅入javascript正则表达式的规则.
- JavaScript正则表达式验证电子邮箱email规则
- javascript正则表达式的常用方法总结
- 正则表达式中的一些高级规则
- JavaScript常用正则表达式
- 【javascript基础】JS正则表达式的实例方法
- 详细的Javascript正则表达式参考手册
- 你不得不知的Javascript正则表达式
- html5,javascript的一系列操作(事件、正则表达式的验证)
- javascript 正则表达式数量词,字符串方法(match,search,replace,split),贪婪模式,惰性模式总结
- javascript 正则表达式的总结
- Javascript正则表达式
- 温故知新 javascript 正则表达式
- JavaScript正则表达式之multiline属性的应用
- JavaScript正则表达式中的ignoreCase属性使用详解