1.\

在非特殊字符之前的反斜杠表示下一个字符是特殊的,不能从字面上解释

1
/\/fa/.exec("/fao")     //===> /fa

#####2.^和$

^是匹配输入的开始

$是匹配输入的结束

1
2
/^A/.exec('an A')  //匹配不到
/A$/.exec('an A') //===> A

#####3.*

匹配前一个表达式0次或多次,等价于 {0,}

1
/bo*/.exec('A ghost boooooed')  //===> booooo
4.+

匹配前面一个表达式1次或者多次,等价于 {1,}

1
2
3
4
5
//这样和*没有区别,结果是一样的
/bo+/.exec('A ghost boooooed') //===> booooo
//但是这样就会区别他俩的区别
/bo+/.exec('A ghost bed') //===> null
/bo*/.exec('A ghost bed') //===> b
5.?
  • 匹配前面一个表达式0次或者1次,等价于 {0,1}
1
2
3
/e?le?/.exec('angel')  //===> el
/e?le?/.exec('angle') //===> le
/e?le?/.exec('solo') //===> l
  • 非贪婪匹配
1
2
3
/ca+/.exec('caaaaaaandy') //===> caaaaaaa
//在符合匹配规则的情况下,尽量少匹配
/ca+?/.exec('caaaaaaandy') //===> ca
6. .

(小数点)匹配除换行符之外的任何单个字符

1
2
3
4
5
6
//匹配o已经前面的一个字符
/.o/.exec("fao bar f bar") //===> ao
//匹配o前面的单个字符(不包括o)
/.(?=o)/.exec("fao bar f bar") //===> a
//匹配o前面的所有字符(不包括o)
/.+(?=o)/.exec("fao bar f bar") //===> fa
7.(X)

匹配 ‘x’ 并且记住匹配项