我想結合snake_case
和PascalCase
命名約定。因此,聲明一個class
及其名稱必須嚴格匹配以下格式:Pascal_Snake
、Pascal_Snake_Pascal_Etc
、OnlyPascal
、Pascal
。
這就是我在我的esling.config
中要做的:
'@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
并不嚴格。我想要的是:
_
之后必須始終至少有一個大寫字母。- 如果不提供
_
——則必須根據PascalCase
格式命名類。
如何得到它?
使用
\w
可以匹配大小寫字符和_
在匹配可選重復組中的大寫字符A-Z之前,可以匹配可選下劃線。
(注意,如果反斜杠為required.,則對其進行雙轉義)
Regex demo
如果不想匹配單個a或AA,可以將小寫字符重復1+次。