1. 正则表达式概述
- 正则表达式:也叫规则表达式,按照一定的规则组成的一个表达式
- 正则表达式的作用:主要是匹配字符串的,验证表单,过滤敏感词(替换)
- 正则表达式的组成:是由元字符或者是限定符组成的一个式子
2. 正则表达式对象创建
- 构造函数创建对象:
var reg = new RegExp(/\d{1,5}/);
- 字面量:
var reg = /\d{1,5}/;
3. 正则表达式的方法
序号 | 方法 | 参数 | 描述 | 返回值 |
1 | .test(字符串) | 字符串 | 验证字符串是否符合正则表达式的规则 | 布尔值 |
/*1. test(字符串) 返回boolean值,验证字符串是否符合正则表达式的规则*/
var reg = new RegExp(/\d{1,5}/)
reg.test("呵呵123");
//或者:
/\d{1,5}/.test("呵呵123") //可以用正则表达式直接调用方法
4. 边界符(位置符)
序号 | 边界符 | 描述 |
1 | ^ | 在 [] 外面以什么开始,在 [] 里面取非(取反) |
2 | ^[0-9] | 以数字开头 |
3 | ^[a-z] | 以小写字母开头 |
4 | [^0-9] | 取反,非数字 |
5 | [^a-z] | 非小写字母 |
6 | [^0-9a-zA-Z_] | 表示的是特殊字符 |
7 | $ | 表示的是以什么结束 |
8 | [0-9][a-z]$ | 必须以小写字母结束 |
9 | ^[0-9][a-z]$ | 严格模式,(一个数字开头加一个字母结束) |
5. 量词符
序号 | 量词符 | 描述 |
1 | * | 前面的表达式出现了0--多次 |
2 | [a-z][0-9]* | 小写字母中的任意一个 后面是要么是没有数字的,要么是多个数字的 |
3 | + | 前面的表达式出现了1--多次 |
4 | [a-z][9]+ | 小写字母一个,后面最少一个9,或者多个9 |
5 | ? | 前面的表达式出现了0次或1次 |
6 | [4][a-z]? | 前面一个4,后面任意小写字母出现0或1次 |
7 | {} | 更加的明确前面的表达式出现的次数 |
8 | {3} | 表示的是前面的表达式出现了3次 |
9 | {0,} | 表示的是前面的表达式出现了0--多次(和 *一样的) |
10 | {1,5} | 表示的是前面的表达式出现了1--5次 |
6. 优先级
- () 分组 提升优先级
[0-9]|([a-z])|[A-Z] //表示要么是数字要么是一个字母,([a-z])被括号包裹了所以字母以小写优先
([0-9])([1-5])([a-z]) //多组的情况下, 从最左边开始计算
7. 元字符
序号 | 元字符 | 描述 |
1 | . | 除了\n以外的任意的一个字符 |
2 | [] | 范围 |
3 | [0-9] | 0到9之间的任意的一个数字 |
4 | [0-9a-zA-Z] | 所有的数字或者是字母中的一个 |
5 | | | 或者 |
6 | [0-9]|[a-z] | 表示的是要么是一个数字,要么是一个小写的字母 |
8. 简写
序号 | 简写 | 描述 |
1 | \d | 数字中的任意一个 |
2 | \D | 非数字中的一个 |
3 | \s | 空白符中的一个 |
4 | \S | 非空白符 |
5 | \w | 非特殊符号 |
6 | \W | 特殊符号 |
7 | \b | 单词的边界 |
9. 正则表达式的参数:/表达式/[switch]
- 正则表达式中:g 表示的是全局模式匹配(就是字符串中所有匹配的部分)
- 正则表达式中:i 表示的是忽略大小写
- gi可以一起写,就是忽略大小写全局匹配
var str="中国移动:10086,中国联通:10010,中国电信:10000";
//把str里面所有的数字全部显示出来
var array = str.match(/\d{5}/g);
console.log(array);
10. 正则表达式的替换(String的方法)
- replace(参数,参数)方法可以实现替换字符操作,用来替换的参数可以是一个字符串, 也可以是一个正则表达式;
第一个参数:被替换的字符串或者正则表达式
第二个参数:替换为的字符串
返回值是一个替换完的新字符串
'abcda'.replace(/a/,"xx") //只替换一个位置的'a'
'abcda'.replace(/a/g,"xx") //替换所有的'a'