javascript正则表达式总结

  • 正则表达式 /\d+/gnew RegExp('\\d+','g')
  • 需要转义的字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { }
  • 匹配重复字符 {m,n} {m,} {m} ? + *是尽可能多的匹配,称为“贪婪的匹配”,而“非贪婪匹配”{m,n}? ?? +? *?在重复字符后加?,表示尽可能少的匹配。例如:/a+/匹配字符串"aaa"的结果是"aaa",而/a+?/匹配字符串"aaa"的结果是第一个"a"
  • 选择、分组和引用:|表示可以选择|左边或右边的字符,如果左边匹配成功,这回忽略右边的字符;()的作用之一的将单独的项组合成子表达式,子表达式可以与| * + ?结合更好地处理独立的单元,带()的表达式可以被同一正则表达式的后面部分引用,通过\加一位数字(带圆括号表达式的位置),如/(\w+)-\1/可以匹配"a-a""abc123-abc123"等,在圆括号里可以嵌套了另一个圆括号,带圆括号 表达式的位置计算方式是:参与计数的左括号的位置,如在/(\w+(hello))(abc)/中,(hello)的位置是2,(?: ... )只组合表达式,不记忆与该组相匹配的字符;
  • 修饰符:i表示不区分大小写,g表示全局匹配,m表示多行匹配(^匹配行的开始,$表示匹配行的结束);
  • 字符串replace方法string.replace(searchvalue,newvalue),searchvalue可以是一个字符串,也可以是一个正则表达式,newvalue可以是一字符串,并约定了一些特殊符号:
    1. $i (i:1~99) 表示匹配的第i个子表达式;
    2. $& 表示与正则表达式匹配的全文本;
    3. $` 表示匹配字符串的左边文本;
    4. $’ 表示匹配字符串的右边文本;
    5. $$ 表示$转义;
  • newvalue也可以是一个函数,函数的第一个参数表示匹配的全部字符串,第2个到第n个表示匹配的第n-1个字表达式(就是带圆括号的表达式),倒数第二个参数表示匹配文本字符串的匹配下标位置,最后一个参数表示字符串本身;

你可能感兴趣的:(javascript)