一、知识点
1. 元字符 正则使用的转义字符
| 元字符 | 描述 |
|---|
| . | 匹配除了回车和换行的所有字符 |
| \w | 查找单词字符 [0-9A-z_] |
| \W | 查找非单词字符 [^\w] |
| \d | 查找数字 [0-9] |
| \D | 查找非数字字符 [^\d] |
| \s | 查找空白字符 [\r\n\t\v\f] |
| \S | 查找非空白字符 [^\s] |
| \b | 匹配单词边界 |
| \B | 匹配非单词边界 |
| \0 | 查找 NUL字符 |
| \n | 查找换行符 |
| \f | 查找换页符 |
| \r | 查找回车符 |
| \t | 查找制表符 tab(4个空格) |
| \v | 查找垂直制表符 |
| \xxx | 查找以八进制数 xxxx 规定的字符 |
| \xdd | 查找以十六进制数 dd 规定的字符 |
| \uxxxx | 查找以十六进制 xxxx规定的 Unicode 字符 |
2. gim修饰符 正则属性
- i:ignore case 忽略大小写
- g:global 全局匹配
- m:multi-line 多行匹配
4. 表达式 []
- [abc]:查找方括号内任意一个字符。
- [^abc]:查找不在方括号内的字符。
- [0-9]:查找从 0 至 9 范围内的数字,即查找数字。
- [a-z]:查找从小写 a 到小写 z 范围内的字符,即查找小写字母。
- [A-Z]:查找从大写 A 到大写 Z 范围内的字符,即查找大写字母。
- [A-z]:查找从大写 A 到小写 z 范围内的字符,即所有大小写的字母。
- [a-zA-Z] = [a-Z]
- [0-9A-Za-z] = [0-9A-z] = [0-z] = [0-Z]
- 表达式内部:^:非,|:或
二、正则基础
1. 全局匹配、忽略大小写,包含Test
var reg = new RegExp('Test', 'gi'),
str = 'This is a test.Test is important.';
console.log(str.match(reg));
2. 全局匹配、忽略大小写、多行匹配,以Test开头的数据
var reg = /^Test/gim,
str = 'This is a test.\nTest is important.';
console.log(str.match(reg));
3. 正则表达式里面如果包含变量只能使用new RegExp()的方式
var v = 'Test';
var str = 'This is a test';
var reg = /v/gi;
var reg1 = new RegExp('Test', 'gi');
console.log(str.match(reg));
console.log(str.match(reg1));
4. new的过程是拷贝对象的过程,不new是拿引用的过程
var reg = /test/;
var newReg = new RegExp(reg);
console.log(reg, newReg);
console.log(reg == newReg);
reg.a = 1;
console.log('newReg.a', newReg.a);
5. 表达式 []
- [a-zA-Z] = [a-Z]
var reg = /[wx][xy][z]/,
str = 'wxyz';
console.log(str.match(reg));
- [0-9A-Za-z] = [0-9A-z] = [0-z] = [0-Z]
var str = "jhjdfkkdlgDhhkEKJKLLOl119431;oo",
reg = /[0-Z][A-Z][a-z]/g;
console.log(str.match(reg));
- 表达式内部:^:非,|:或
var str = "234jhjdfkkdlgDhhkEKJKLLOl123431;oo",
reg = /[^0][A-Z][a-z]/g,
reg1 = /123|234/g,
reg2 = /(123|234)[t]/g,
reg3 = /(123|234)[j]/g;
console.log(str.match(reg));
console.log(str.match(reg1));
console.log(str.match(reg2));
console.log(str.match(reg3));
6. 元字符元字符 正则使用的转义字符
- \w === [0-9A-z_];
- \W === [^\w];
- \d === [0-9];
- \D === [^\d];
- \s === [\r\n\t\v\f]; \r:回车符,\n:换行符,\t:制表符 tab(4个空格),\v:垂直换行符,\f:换页符
- \S === [^\s];
- \b 单词边界
- \B 非单词边界
- . 可以匹配除了回车和换行的所有字符
var reg = /\wab/g,
str = '234abc_ab%&';
console.log(str.match(reg));
var reg = /[\W][\W][\W]/g,
str = '234%abc-%&';
console.log(str.match(reg));
var reg = /\Dab/g,
str = '234eabc-%&';
console.log(str.match(reg));
var reg = /\d\D/g,
str = '0GF34ojkkk-22gg';
console.log(str.match(reg));
var reg = /\sab/g,
str = '23\fab-&%';
console.log(str.match(reg));
var reg = /\Bhis\b/g,
str = 'This is a Test';
console.log(str.match(reg));
var reg = /./g,
str = 'This\ris\na\ttest $%#';
console.log(str.match(reg));
var reg = /[\w\W][\d\D][\s\S]/g,
str = 'abcdefg';
console.log(str.match(reg));