1. 正则表达式
- 最基本的使用场景:例如在一些注册账号的时候需要填邮箱、手机号的时候,正则表达式可以判断在填手机号的时候,是否是数字,邮箱规则是否正确。即表单判断。
- 含义:是js有个对象,通过一些规则,对字符串进行匹配,看是否匹配上,可以拿到匹配结果。
用2种方式创建正则表达式
2. 创建正则表达式(2种)
(1) 构造函数
var reg=new RegExp("abc","g")//必须为字符串,第二个参数为在匹配过程中需要遵循某些规则
(2).字面量
var reg=/abc/g;//如果是字面量,内容直接写在'//'里面,第二个参数紧接在后
//在控制台显示/abc/g,这个不是字符串,是控制台对正则表达式一个人性化的展示
最后的g代表全局,还有几个修饰符
- g:global,全文搜索,不添加的话搜索到第一个结果停止搜索
- i:ingore case,忽略大小写,默认大小写敏感
- m:multiple lines,多行搜索
3.元字符(在正则表达式代表特别的意义)
( [ { \ ^ $ | ) ? * + .
字符 |
含义 |
\ |
转义符,如果\后不是特别的字母,\代表的转义的,可以转义元字符;例如'a*'.match(/a*/g);得到的是["a*"] |
[ ] |
在[ ]代表匹配这个范围内的的字符。例如[a-g],代表匹配这个范围内的一个字符 |
^ |
以xxx为开头,例如/^hello/,必须以hello开头的 |
$ |
以xxx的结尾 |
[^ ] |
不匹配里面任何字符 |
. |
除了/r/n所有的字符 |
\r |
回车符 |
\n |
换行符 |
\f |
换页符 |
\v |
垂直制表符 |
\0 |
空字符 |
量词
字符 |
含义 |
* |
匹配前面字符0次或多次,等价于{0,} |
? |
匹配前面字符 0次或1次,等价于{0,1},如果紧跟在任何量词 *、 +、? 或 {} 的后面,将会使量词变为非贪婪的(匹配尽量少的字符),和缺省使用的贪婪模式(匹配尽可能多的字符)正好相反。 |
+ |
匹配前面字符1次或多次,等价于{1,} |
{n} |
匹配n次 |
{n,m} |
出现n到m次 |
{n,} |
至少出现n次 |
边界
字符 |
含义 |
^ |
以xxx开头 |
$ |
以xxx结尾 |
\b |
单词边界 |
\B |
非单词边界 |
预定义类
字符 |
等价类 |
含义 |
. |
[^/r/n] |
除了回车符和换行符之外的所有字符 |
\d |
[0-9] |
数字字符 |
\D |
[^0-9] |
非数字字符 |
\s |
[\t\n\x0B\f\r] |
空白符 |
\S |
[^\t\n\x0B\f\r] |
非空白符 |
\w |
[a-zA-Z_0-9] |
单词字符,字母、数字下划线 |
\W |
[^a-zA-Z_0-9] |
非单词字符 |