正则表达式

108 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情

正则表达式:

  • 不是JS专属的,学了这门技术,所有语言都通用
  • 作用:可以检索、替换、提前符合某个特定规则的文本

两种创建方式:

  • 构造函数:new RegExp('abcd')
  • 字面量:/abcd/

检测方法:reg.test(str),意思是检测str这个字符串是否符合reg正则表达式的规则

边界符:

  • ^,以...开头
  • $,以...结尾

字符类:

我们可以通过[]来构建一个字符类,所谓类就是一个泛指,不是特指某个字符,比如:[abc]意思就是把字符abc归为一类,可以匹配这三个字符中任意一个,多选一

范围字符类:

我么可以使用[a-z]来连接两个字符,表示从az任意字符,[0-9],表示从09任意字符

范围字符是一个闭区间,也就是包含了az本身

[]组成的类内部还可以连写,如:[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

修饰符跟顺序没关系