首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eslint合并命名约定

Eslint合并命名约定
EN

Stack Overflow用户
提问于 2021-12-28 15:28:08
回答 1查看 313关注 0票数 1

我想将snake_casePascalCase命名约定结合起来。因此,声明一个class的名称必须严格符合的格式Pascal_SnakePascal_Snake_Pascal_EtcOnlyPascalPascal

这就是我在我的esling.config里想做的

代码语言:javascript
复制
"@typescript-eslint/naming-convention": [
  {
      selector: "class",
      format: null,
      custom: {
          regex: "([A-Z]\\w*_?[A-Z]\\w+)|([A-Z]\\w*[A-Z]?\\w+)",
          match: true,
      },
  },
]

不幸的是,这个regex并不严格。我想要的是:

  1. _之后,必须始终至少有一个大写字母。
  2. 如果不提供_,则必须根据PascalCase格式命名类。

怎么弄到?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-28 15:34:15

使用\w可以匹配大小写字符和_

在可选重复组中匹配大写字符A之前,可以匹配可选下划线。

(如果需要,请注意双转义反斜杠。)

代码语言:javascript
复制
\b[A-Z][a-z]*(?:_?[A-Z][a-z]*)*\b

Regex演示

如果不想匹配单个A或AA,则可以重复小写字符1+时间。

代码语言:javascript
复制
\b[A-Z][a-z]+(?:_?[A-Z][a-z]+)*\b
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70509132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档