1.什么是正则表达式
概念:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
目的:只能验证格式,不能验证内容
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
2.正则表达式的创建
1.字面量创建正则
var reg = /a/; //字面量创建正则:
console.log(reg);
console.log(typeof reg); //控制台查看类型
2.构造函数创建正则:
var reg2 = new RegExp("a") //构造函数创建正则:
console.log(reg2);
console.log(typeof reg2); //控制台查看类型
3.任何两个对象都不相等
3.常用 正则的写
- 修饰符
- `g` 全局
- `i` 忽略大小写
- 量词:前一个要匹配的项
- `+` 出现 1 个或以上
- `*` 零次或多次
- `+` 至少一次或多次
- `?` 零次或一次
- `{n}` 确定n次
- `{n,}` 至少匹配n次
- `{n,m}` 至少匹配n次,最多匹配m次
- `|` 或
- `()` 表示一个整体
- `[]` 中元符,表示一个范围,内部的所有内容,默认是或的关系,一个中元符只能匹配一位
- `[^]` 非,除了中元符内部的内容
- 转义符
- `\d` 所有数字,等同于`[0-9]`
- `\w` 数字字母下划线,等同于`[0-9a-z_A-Z]`
- `\s` 空格
- `\D` 非数字,等同于`[^0-9]`
- `\W` 非数字字母下划线,等同于`[^0-9a-zA-Z_]`
- `\S` 非空格,等同于`[^ ]`
- `.` 通配符,表示任何
var str = "abcq123b@#_$- %^&*2c3123wAe! @#%&a2 31abc2 #@$__%-^&*31vaab";
console.log(str);
console.log(str.replace("a","啊"));
console.log(str.replace(/a/,"啊"));
console.log(str.replace(/a/g,"啊"));
console.log(str.replace(/A/g,"啊"));
console.log(str.replace(/a/ig,"啊"));
console.log(str.replace(/a+/ig,"啊"));
console.log(str.replace(/a|b|c/ig,"啊"));
console.log(str.replace(/a|b|c+/ig,"啊"));
console.log(str.replace(/(a|b|c)+/ig,"啊"));
console.log(str.replace(/[abc]+/ig,"啊"));
console.log(str.replace(/[a-z]+/ig,"啊"));
console.log(str.replace(/[0-9]+/ig,"啊"));
console.log(str.replace(/[^0-9]+/ig,"啊"));
console.log(str.replace(/[0-9a-z]+/ig,"啊"));
console.log(str.replace(/[^0-9a-z]+/ig,"啊"));
console.log(str.replace(/\d+/ig,"啊"));
console.log(str.replace(/\w+/ig,"啊"));
console.log(str.replace(/\s+/ig,"啊"));
console.log(str.replace(/[^\d]+/ig,"啊"));
console.log(str.replace(/\D+/ig,"啊"));
console.log(str.replace(/\W+/ig,"啊"));
console.log(str.replace(/\S+/ig,"啊"));
console.log(str.replace(/.+/ig,"啊"));
console.log(str);
4.正则 的读