先看micro-app里面的正则
/^[\s\S]+{/
/^((html[\s>~,]+body)|(html|body|:root))/
1.定义
是用来描述字符串内容格式,使用它通常用于匹配一个字符串的内容是否符合格式要求。
2.字符串的正则方法
- split:根据匹配字符串切割父字符串
- match:使用正则表达式与字符串相比较,返回一个包含匹配结果的数组
- search:使用正则表达式或指定字符串进行搜索,返回第一个出现的匹配项的下角标
- replace:使用正则表达式和字符串比较,然后用新的子串来替换被匹配的子串
3.正则表达式方法
- exec:在目标字符串中执行一次正则匹配操作
在全局模式下,当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把正则表达式对象的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。 - test:测试当前正则是否能匹配目标字符串
4.[] 字符集
简单类:就是任意多个字符进行集合书写,多个字符连续书写。
比如:[abc]
范围类:有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加了个横线。
比如:[0-9] [A-Z] [a-z]
组合类:允许用中括号匹配不同类型的单个字符,或者是一类及多类,或者一些单一的符号。
比如:[0-9a-z]
5.修饰符 g i
g 修饰符用于执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
i 修饰符用于执行对大小写不敏感的匹配。
6.边界符 ^ $
^ 开头 表示字符串必须以^后面的内容作为开头。
$ 结尾 表示$前面匹配的结果必须位于字符串最后
7.预定义类 \d \D \s \S \w \W
\d [0-9] \d可以匹配一个任意的数字字符
\D [^0-9] \D 匹配任意一个不是数字的字符
\s 可以匹配任意的空白。
\S 可以匹配任意的不是空白的字符。
\w 可以匹配任意的字母、数字或下划线。
\W 可以匹配任意的字母、数字、下划线以外的内容。
量词
如果需要将正则的某个符号连续匹配多次,可以使用量词对符号进行修饰。量词的写法:{},内部书写对应的数字,表示量词是多少。
词 | 软硬 | 出现次数 |
---|---|---|
{n} | 硬性量词 | 对应零次或者n次 |
{n,m} | 软性量词 | 至少出现n次但不超过m次(中间不能有空格) |
{n,} | 软性量词 | 至少出现n次 |
? | 软性量词 | 出现零次或一次 |
* | 软性量词 | 出现零次或多次(任意次) |
+ | 软性量词 | 出现一次或多次(至少一次) |
中文匹配
固定字符集写法:[\u4e00-\u9fa5]
可以匹配一个任意的中文汉字。
分组
正则中使用()表示分组,内部的内容会作为一个整体进行操作。
后期如果小括号后面有量词,表示小括号内部整体重复匹配多少次。
/(byebye){2}/.test(“byebye”) true
正则表达式不包含某些字符
^: 以·····开头的字符串
$:以·····结尾的字符串
如:
只包含数字字母: [0-9a-zA-Z]
以数字开头: ^[0-9]
以字母结尾:[a-zA-Z]$
而不包含数字字母:
[^0-9a-zA-A] :那个开始符是写在中括号里面 的!!