持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
正则表达式:
- 不是JS专属的,学了这门技术,所有语言都通用
- 作用:可以检索、替换、提前符合某个特定规则的文本
两种创建方式:
- 构造函数:
new RegExp('abcd') - 字面量:
/abcd/
检测方法:reg.test(str),意思是检测str这个字符串是否符合reg正则表达式的规则
边界符:
- ^,以...开头
- $,以...结尾
字符类:
我们可以通过[]来构建一个字符类,所谓类就是一个泛指,不是特指某个字符,比如:[abc]意思就是把字符a或b或c归为一类,可以匹配这三个字符中任意一个,多选一
范围字符类:
我么可以使用[a-z]来连接两个字符,表示从a到z任意字符,[0-9],表示从0到9任意字符
范围字符是一个闭区间,也就是包含了a和z本身
在[]组成的类内部还可以连写,如:[a-zA-Z0-9]
在字符类中开头加上^表示取反,并不是以...开头
括号总结:
// 中括号 字符集合.匹配方括号中的任意字符. 多选一
// var reg = /^[abc]$/;
// a 也可以 b 也可以 c 可以 a ||b || c
// 大括号 量词符. 里面表示重复次数
// var reg = /^abc{3}$/; // 它只是让c重复三次 abccc
// console.log(reg.test('abc'));
// console.log(reg.test('abcabcabc'));
// console.log(reg.test('abccc'));
// 小括号 表示分组
var reg = /^abc{3}$/; // 它是让c重复三次
var reg = /^(abc){3}$/; // 它是让abc重复三次
console.log(reg.test('abc'));
console.log(reg.test('abcabcabc'));
console.log(reg.test('abccc'));
正则表达式里的或:|,不要和JS里面逻辑或:||混淆了
\u4e00-\u9fa5是Unicode编码(中文的开始和结束的字符),what is Unicode?Unicode也叫万国码,是计算机领域的一个标准,用来解决不同语言之间的字符问题,为每一中语言的每一个字符都设置一个统一并且唯一的编码
通过构造函数创建的正则表达式实例,第二个参数是修饰符:
new RegExp('激情', 'g')
// /激情/g
修饰符跟顺序没关系