持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第30天,点击查看活动详情
- 正则表达式的组成:由一些普通字符和一些特殊字符(又叫元字符metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义
- 特殊字符:javascript中常用特殊字符有()[]{}^$|?*+.
- 若想匹配这类字符必须用转义符号\,如:(,^,\
- 预定义特殊字符:
- \t /\t\ 制表符 eg: console.log(/\t/.test(''))
- \n /\n/ 回车符 eg: console.log(/\n/.test(
aaa bbb)) - \f /\f/ 换页符
- \b /\b/ 空格
- 在字符串中写换行还不会报错的方法`` - 字符集:使用[]表示的可能的字符的集合,集合内部可以排列多个匹配字符串的可能性,整个字符集需要匹配的是字符串中的一个字符。[]:字符串中的一个字符,多选一的效果,有一个满足就算匹配成功 - 简单类:正则的多个字符对应一个字符,我们可以用[]把它们包裹起来,让[]这个整体对应一个字符[abc] - 例子:o[usb]t - out、ost、obt - 范围类:有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加个横线[a-z] [0-9] [A-Z] - 例子:id[0-9] - id0、id5 - 负向类:[]前面加个元字符进行取反,表示匹配不能为括号里面的字符[^a] - 例子:o[^0-9]t - oat、o?t、o t - 组合类:允许用中括号匹配不同类型的单个字符[0-9a-b] - 例子:o[0-9a-b]t - oat、o0t、o - 如果数字、大写字母、小写字母,按照这个顺序可以进行缩写 /[0-9A-Z]/ == /[0-Z]/ /[0-9a-z]/ == /[0-z]/ - 修饰符: - g修饰符用于执行全局匹配(查找所有匹配而非在找到一个匹配后停止) - '12a34b56c78d90e'.match(/\d+/) => ['12'] - '12a34b56c78d90e'.match(/\d+/g) => ['12','34','56','78','90'] - i修饰符用于执行对大小写不敏感的匹配 - 'aabAAcAa'.match(/aa/g) => ['aa'] - 'aabAAcAa'.match(/aa/gi) => ['aa','AA','Aa']