ES10 采用的新正则特性解析及使用教程

ES10 采用的新正则特性解析及使用教程

正则表达式是前端开发中常用的一种技术。ES10 中新增了一些新的正则特性,本篇文章就来详细解析这些新特性,并提供相应的使用教程与示例代码。

  1. s 修饰符

s 修饰符是 ES10 中新增的一种修饰符,它可以让点号 . 匹配任何字符,包括换行符。在以往的正则表达式中,点号只能匹配除了换行符之外的任何字符。

// 示例代码 const str = hello world; console.log(str.match(/hello.world/)); // null console.log(str.match(/hello.world/s)); // ["hello\nworld"]

  1. Unicode 属性转义

ES10 引入了 Unicode 属性转义,它可以通过 \p{} 和 \P{} 实现,用于匹配某个字符是否属于某一类别,如是否为字母、数字、空格等。

// 示例代码 console.log(/\p{Letter}/u.test("a")); // true console.log(/\p{Letter}/u.test("1")); // false console.log(/\p{Number}/u.test("1")); // true console.log(/\p{Space}/u.test(" ")); // true console.log(/\P{Space}/u.test(" ")); // false

  1. (?<=) 和 (?<!) 正向断言和负向断言

在以往的正则表达式中,如果想要匹配某些内容,但又不想将其作为匹配结果返回,通常会使用括号对其进行分组,但这样会导致分组匹配结果在最终匹配结果中出现。为了解决这个问题,ES10 引入了正向断言 (?<=) 和负向断言 (?<!)。

// 示例代码 console.log(/q(?!u)/.test("q")); // true console.log(/q(?!u)/.test("qu")); // false console.log(/(?<!a)b/.test("b")); // true console.log(/(?<!a)b/.test("ab")); // false

  1. 可选数字分隔符

ES10 引入了可选数字分隔符,可以在数字中使用下划线 _ 进行分割,便于区分大数字,并不影响数字的计算。

// 示例代码 console.log(1_000_000); // 1000000 console.log(1e7); // 10000000

总结

ES10 中新增的正则特性,让正则表达式的匹配能力更加强大,丰富了前端开发工具的应用场景。同时,也提供了更多的思考和实践空间,为前端开发带来了更多的可能性。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64ca7dd65ad90b6d041b49bf


猜你喜欢

  • 如何用 PWA 技术实现可离线的电子商务网站?

    前言 近年来,随着移动端设备的普及,手机成为了人们生活中不可或缺的工具之一。同时,人们对于网站性能和用户体验的要求也越来越高。因此,一种名为“渐进式Web应用程序(PWA)”的技术逐渐兴起。

    1 年前
  • 解决 IE 浏览器不支持 Custom Elements 的问题

    前言 Custom Elements 是 Web Components 中的一种实现方式,可以让开发者自定义 HTML 元素,扩展出更丰富的标签来使用。然而,IE 浏览器并不支持 Custom Ele...

    1 年前
  • 如何在 Koa 框架中使用 Mongoose 进行 MongoDB 操作

    本文将介绍如何在 Koa 框架中使用 Mongoose 进行 MongoDB 操作。Mongoose 是一个优秀的 Node.js ORM 框架,能为开发者提供方便的 API 来操纵 MongoDB ...

    1 年前
  • ES10 的 Unicode 正则表达式匹配详解及最佳实践

    在 JavaScript 的开发中,正则表达式是十分常见的一种工具,它可以帮助我们在字符串中匹配指定的模式。而随着 ES10(ECMAScript 2019)的发布,通过 Unicode 相关的功能,...

    1 年前
  • Next.js 如何处理多语言路由

    Next.js 如何处理多语言路由 随着全球互联网的迅猛发展,多语言网站已成为企业营销的一个重要手段。对于前端开发人员来说,实现多语言路由是一个不可避免的问题。在 Next.js 中,处理多语言路由非...

    1 年前
  • 用 Tailwind 实现简洁无比的卡片式布局

    在现代 web 开发中,卡片式布局越来越受欢迎。这种布局可以将页面中的元素分离出来,使其更具可读性和可视性。如果你正在寻找一种简单、实用且易于定制的方法来实现卡片式布局,那么 Tailwind CSS...

    1 年前
  • Mongoose 中使用 Model.create 方法的注意事项

    Mongoose 是一款优秀的 Node.js ORM 框架。在使用 Mongoose 时,很多情况下我们需要使用到 Model.create 方法。本文主要介绍在 Mongoose 中使用 Mode...

    1 年前
  • Promise 异步处理错误的最佳实践

    Promise 是现代 JavaScript 中非常常见的异步编程技术。使用 Promise 可以避免回调地狱,更简洁、直接、易读与维护。但是,在使用 Promise 时,我们也常常遇到处理错误的问题...

    1 年前
  • 使用 Express.js 和 React 创建单页面应用

    在 Web 开发中,单页面应用(SPAs)已经变得越来越流行,因为它们可以提供更好的用户体验,并且在实现上也更加简单。Express.js 是一个流行的 Node.js Web 应用程序框架,而 Re...

    1 年前
  • 使用 Angular 进行单元测试的最佳实践

    前言 随着 Angular 技术栈的日渐火热,前端开发中的单元测试也逐渐成为了必不可少的一环。但对于初学者或者没有进行过单元测试的开发者来说,如何进行有效的单元测试还是一个难题。

    1 年前
  • ECMAScript 2018 中的 Promise 扩展

    在 ECMAScript 2018(也称为 ECMAScript 9)中,JavaScript 引入了一些新的 Promise 扩展,使得 Promise 更加强大和灵活。

    1 年前
  • Docker 容器日志的监控和管理方法

    Docker 是当前非常流行的一种虚拟化技术,它能够快速构建和部署应用程序、配置不同的运行环境,并可通过容器技术实现隔离和扩展等功能。在实际应用中,我们通常需要监控和管理 Docker 容器的日志,以...

    1 年前
  • 解决 Safari 中 Flexbox 布局的边距问题

    在前端开发中,我们常常使用 Flexbox 来实现布局。然而,在 Safari 浏览器中,Flexbox 布局会出现一些问题,例如在容器边缘出现不必要的边距。本文将详细介绍这个问题,并提供解决方案。

    1 年前
  • ES6 中的 Set 和 WeakSet 使用详解

    在 ES6 中,新增了两个集合类:Set 和 WeakSet,它们提供了一种存储无序的、唯一的值的方式。它们与数组的区别在于,数组中的值可以重复,而集合中的值必须唯一。

    1 年前
  • Apollo 与 GraphQL 的完美结合

    前言 近年来,前端技术发展迅速,而 GraphQL 作为一种新型的 API 模式,被越来越多的开发者所认可和使用。并且,在使用 GraphQL 的过程中,很多人都会选择使用 Apollo 这个优秀的库...

    1 年前
  • Vue.js 中的混入和插件

    Vue.js 是一款流行且非常强大的 JavaScript 前端框架,它提供了丰富的功能和工具来开发复杂的单页应用。在 Vue.js 中,混入(Mixin)和插件(Plugin)是两个非常实用的特性,...

    1 年前
  • 如何使用 Jest 测试 Vue.js 应用程序?

    随着前端开发的不断发展,测试已经成为了每个优秀开发人员必备的技能之一。而在 Vue.js 的应用程序中,测试成为了一个更加重要和不可或缺的环节。在测试过程中,Jest 可以帮助我们完成单元测试和集成测...

    1 年前
  • React 性能优化:使用 memo 缓存组件

    什么是 React? React 是一个由 Facebook 开源并维护的 JavaScript 库,用于构建用户界面。它提供了一种声明式的、高效的和可重用的方法来构建 UI 组件。

    1 年前
  • Socket.io 应用程序中的实时日志处理方案探讨

    随着前端技术的不断发展和应用的广泛化,Web 应用程序变得越来越复杂。在这些复杂的应用程序中,日志记录是一个必不可少的部分,它能够为我们提供宝贵的信息来诊断和修复潜在的问题。

    1 年前
  • 如何利用 Headless CMS 思想打造一个可扩展的 IT 平台

    随着数字化时代的到来,更多的企业和机构开始关注数字化转型和数字化运营。在数字化运营中,IT 平台扮演着重要的角色。一个好的 IT 平台需要具备可扩展性、易用性和易维护性等特点。

    1 年前

相关推荐

    暂无文章