ES7 RegExp 正则表达式修饰符简介

阅读时长 3 分钟读完

正则表达式一直是前端开发中不可或缺的一部分,它可以帮助您匹配和处理字符串。ES7 标准引入了三个新的修饰符来改善正则表达式的功能。在本篇文章中,我们将深入研究这三个修饰符,了解它们如何工作以及如何使用它们来使我们的代码更加高效。

1.修饰符 y

修饰符 y 被称为"黏性"修饰符,它让正则表达式尝试从上次匹配的位置继续匹配。这意味着,它只会匹配一个字符串中的连续字符。

在上面的代码中,正则表达式只匹配了字符串的前三个字符,因为它在第四个字符"/_"的位置停止了。在第二个执行中,它在第五个字符 "a " 的位置开始了下一次匹配,所以只匹配了第五和第六个字符" aa " 。在第三次执行中,它返回 null ,因为没有找到匹配。

2.修饰符 u

在 JavaScript 中,字符串是以 UTF-16 格式存储的,可以处理 16 位字符。但是,某些字符需要使用超过 16 位的 Unicode 码点来表示。使用当然的正则表达式处理这些字符时,它只会匹配前 16 位字符,而不是整个字符。ES7 引入了修饰符 u 来修复这个问题。

在上面的代码中,我们试图匹配一个字符串,它只由一个字符"𠮷"组成。使用 u 修饰符可以正常匹配,而不使用 u 则无法匹配。

3.修饰符 s

修饰符 s 用于打开“单行”模式。在这种模式下,点号 (.) 单个字符的匹配将包括换行符 (\n) 。

考虑下面的字符串:

在上面的代码中,正则表达式想要匹配"First line"和 "line"之间的所有字符,在换行符之后停止匹配。但是,这并没有起作用。原因是默认的点号 "."不会匹配新行符。要解决这个问题,我们可以使用 s 修饰符。

在上面的代码中,我们使用 s 修饰符,使点号能够匹配新行符。正确地找到了我们要查找的字符串。

总结

ES7 引入的这三个修饰符可以帮助我们更好地处理不同类型的字符串。要使用这些修饰符,只需在正则表达式末尾添加修饰符所对应的字符。在 JavaScript 中,正则表达式是一项非常强大的特性。掌握这些修饰符将有助于您编写更高效和有效的 RegExp。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645b496b968c7c53b0da1600

纠错
反馈