609

这是帕斯卡案例:SomeSymbol

这是骆驼案:someSymbol

这是蛇案例:some_symbol

所以我的问题是是否有一个被广泛接受的名称:some-symbol?它通常用于url。

4

15 回答 15

516

这个案例约定并没有真正的标准名称,并且对于应该如何命名存在分歧。

也就是说,截至 2019 年,有充分的理由证明kebab-case获胜:

https://trends.google.com/trends/explore?date=all&q=kebab-case,spinal-case,lisp-case,dash-case,caterpillar-case

脊柱案例是一个遥远的第二,没有其他术语有任何牵引力。

此外,kebab-case已进入多个 javascript 代码库的词典,例如:

但是,人们仍然使用其他术语。Lisp 几十年来一直使用这个约定,正如Wikipedia entry中所描述的那样,所以有些人将其描述为lisp-case。我见过的其他一些形式包括caterpillar-casedash-casehyphen-case,但这些都不是标准的。

因此,您的问题的答案是:不,这种案例约定没有一个被广泛接受的名称,类似于被广泛接受的snake_casecamelCase

于 2013-07-23T20:12:23.590 回答
499

它被称为kebab-case。请参阅lodash 文档

于 2012-09-05T00:39:02.433 回答
39

它有时也被称为毛毛虫案例

于 2014-02-22T16:23:21.913 回答
20

这是最著名的案例,它有很多名字

  • kebab-case: 官方软件最常用的名字
  • caterpillar-case
  • dash-case
  • hyphen-case或者hyphenated-case
  • lisp-case
  • spinal-case
  • css-case
  • slug-case
  • friendly-url-case
于 2019-01-23T15:01:44.307 回答
16

在此处添加正确的链接Kebab Case

这是所有小写字母,用 - 分隔单词。

于 2016-09-05T13:39:35.040 回答
14

由于字符 (-) 被称为“连字符”或“破折号”,因此将其命名为“破折号大小写”或“连字符大小写”(不太常用)似乎更自然。

Wikipedia中所述,还使用了“ kebab-case ”。显然(见答案)这是因为这个角色看起来像一个烤肉串……不过它需要一些想象力。
例如在lodash lib中使用。

最近,“ dash-case ”被

于 2017-06-02T10:30:01.153 回答
10

我一直叫它,听说它被称为“dashcase”。

于 2017-01-27T09:35:59.437 回答
6

没有标准化的名称。

jquerylodash等库将其称为kebab-case. Vuejs javascript 框架也是如此。但是,我不确定kebab-case在 javascript 世界中声明它是否安全。

于 2016-12-08T18:48:26.567 回答
5

我只想说它是hyphenated

于 2016-11-29T09:37:37.593 回答
5

值得一提的是废除:

https://github.com/tpope/vim-abolish/blob/master/doc/abolish.txt#L152

破折号盒或烤肉串盒

于 2017-09-30T02:00:32.317 回答
4

在 Salesforce 中,它被称为kebab-case. 见下文

https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.js_props_names

于 2019-03-05T14:50:57.687 回答
3

我一直把它称为kebab-case.

有趣的是,SCREAM-KEBAB当所有字母都大写时,我听说人们称它为 a。

烤肉串案例警告

我一直很喜欢kebab-case,因为当您需要空格时,它似乎是最易读的。但是,一些程序将破折号解释为减号,它可能会导致问题,因为您认为是名称变成了减法运算。

first-second  // first minus second?
ten-2 // ten minus two?

此外,一些框架会解析 kebab cased 属性中的破折号。例如,GitHub Pages 使用Jekyll,Jekyll 会解析它在 md 文件中找到的任何破折号。例如,2020-1-2-homepage.mdGitHub Pages上命名的文件被放入一个文件夹,该文件夹的结构\2020\1\2\homepage.html与网站编译时的结构相同。

Snake_case 与 kebab-case

is或E的更安全的替代方法kebab-case是,与减号相比,下划线引起的混淆更少。snake_caseSCREAMING_SNAKE_CAS

于 2020-12-17T14:52:19.227 回答
2

这是最近的混乱。Angular JS 和 Pluralsight 课程和有关 Angular 的书籍中到处都是文档,都将 kebab-case 称为蛇形案例,而不是区分两者。

它太糟糕的毛毛虫箱没有粘住,因为蛇箱和毛毛虫箱很容易记住并且实际上看起来就像它们所代表的(如果你有很好的想象力的话)。

于 2017-04-19T17:48:43.293 回答
1

我对String.prototype.toKebabCase.

String.prototype.toKebabCase = function () {
  return this.valueOf().replace(/-/g, ' ').split('')
    .reduce((str, char) => char.toUpperCase() === char ?
      `${str} ${char}` :
      `${str}${char}`, ''
    ).replace(/ * /g, ' ').trim().replace(/ /g, '-').toLowerCase();
}
于 2019-03-13T16:53:23.217 回答
0

这种套管也可以称为“slug”,将一个短语变成它的过程“slugify”。

https://hexdocs.pm/slugify/Slug.html

于 2020-07-02T15:44:18.727 回答