`

javascript之正则表达式

阅读更多
1.创建正则表达式的两种方式
第一种方法:
var reg = /pattern/;
第二种方法:
var reg = new  RegExp('pattern');
2.调用正则表达式的3种方法
第一种方法:
reg.exec(str);//返回的是匹配的内容
第二种方法:
str.match(reg);//返回的是匹配的内容,返回的结果是一个匹配上的数组
第三种方法:
reg.test(str);//返回的是true或是false
3.和正则表达式相关的方法
第一种replace:
str.replace("reg","newstr");
第二种split
str.split("reg|str",[howmany])
第三种:
str.search("reg");//匹配第一次正则表达式匹配的位置,从0开始计算
4.c{n}的用法
  c{1}表示一个c的意思
  c{2}表示连续两个c的意思
5,c{m,n}的用法
   表示c连续出现m个或是n个。默认会优先匹配n,注意m要<=n
6.c{n,}的用法
   表示匹配n个以上的c,包括n
7. * + ?的用法
   *表示0次或是多次,相当于{0,}
   +表示1次或是多次,相当于{1,}
   ?表示0次或是一次,相当于{0,1}
8. 使用正则表达式非贪心的用法
    在表示数字用法后面添加上?就可以了。
    {n,}?, *?, +?, ??, {m,n}?
9. 开头或是结尾正则
   /^c/表示以c开头的字符串  ,//注意和取反符号的用法
   /c$/表示以c结尾的字符串
10. .用法
    .表示匹配除了\n(换行符)之外的其他任意一个字符
11. |用法
     |表示二选一
      var reg = /a|b/表示a或者是b
     reg = /^b|c.+/;表示以b或是c开头的,并且非换行符\n的若干个字符
12. ()的用法
     reg = /^(b|c).+/; 表示这次的结果是整个串bbs.blueidea.com,机上上面的括号这后,这个正则的意思是,如果字符串的开头是b或者c,那么匹配开头的b或者c以及其后的所有的非换行字符。
13. 字符集合[abc]
    表示匹配其中的一个字符
     reg = /^[abc]/;表示以a或是b或是c任意一个开头的字符串,如果reg = /[^abc]/表示非a或是b或是c开头的字符串
14. 边界与非边界
     \b表示边界
     reg = /\bc/;
    str='cainiao';//返回c,因为c的左侧就是边界
     reg = /\bc/;
    str='维生素c';//返回c,因为c的右侧是边界
     reg = /\bc/;
    str='bcb';//这个会匹配失败
     \B表示与\b相反
     reg = /\Bc/;
    str='bcb';
15.数字与非数字
   reg = /\d/;
  str='cainiao8'//返回的是数字8
16. 空白
  \f匹配换页符,\n匹配换行符,\r匹配回车,\t匹配制表符,\v匹配垂直制表符
  \s匹配单个空格,等同于[\f\n\r\t\v]
  reg = /\s.+/;
  str='This is a test  String.';
  返回“is a test String.”,正则的意思是匹配第一个空格以及其后的所有非换行字符。
17.单词字符\w 等同于字符集合[a-zA-Z0-9_]
   reg = /\w+/;
   str='.className';
   返回className
   不会去匹配中文
18. 反向引用
     插曲:
         reg = /(\w)(\w)/;
         str='blueidea';
         返回bl,b,l

     reg = /(\w)\1/;
     str='blueidea';
     第一个括号里的(\w)匹配了b,因此“\1”就同样表示b了,在余下的字符串里自然找不到b了。所以返回null
19. 避免子正则
     reg = /^(?:b|c).+/;
    str='bbs.blueidea.com';
    只返回整串,没有,b了
20. 正向预查
     形式:(?=pattern)
    reg = /cainiao(?=8)/;
    str='cainiao8';
    返回cainiao
21. 非正向预查
     ?!
    reg = /blue(?!idea)/;
    str='blueidea';//会返回null,是想要返回后面不带有idea的。
22.匹配元字符
   如果只想匹配元字符,即描述字符的字符就加\就可以了
   reg = /c\*/;
   str='c*';//这样就匹配到c了
23. 正则表达式的修饰符
     全局匹配  形式:/pattern/g,即找到以后会继续向后查找
    
     不区分大小写,修饰符i
    形式:/pattern/i
   
    行首行尾,修饰符m
    形式:/pattern/m
    var reg = /^b/m;
    var str = 'test\nbbs';//匹配成功
24. replace函数
     var reg =  /(\w+).(\w+).(\w+)/;
    var str =  'bbs.blueidea.com';
    var newStr =  str.replace(reg,'$1.$1.$1');
    document.write(newStr);
    $1表示第一个第一括号匹配到的内容bbs
     $2表示第二个括号匹配到的内容blueidea


  












  



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics