正则表达式的基本语法
2018-05-15 本文已影响0人
usopp酱
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] | 非单词字符 |