这个奇怪的大写函数的目的是什么?

时间:2011-10-16 15:06:02

标签: javascript case-sensitive

我正在查看kibo.js的代码并找到了这个函数:

Kibo.capitalize = function(string) {
  return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });
};

任何人都有任何想法,为什么他们可能会使用它而不仅仅是.toUpperCase?

PS - Kibo位于https://github.com/marquete/kibo/blob/master/kibo.js

4 个答案:

答案 0 :(得分:2)

它基本上首先将整个字符串转换为小写字母,然后仅将第一个字母大写。

capitalize:

TEST => Test
test => Test
teST => Test

...而不是toUpperCase:

test => TEST
teST => TEST
Test => TEST

toLowerCase:

TeST => test
TEST => test
tesT => test

某些语言也有titleize方法,可以将每个单词的第一个字母大写,如标题/专有名称所示:

mary poppins          => Mary Poppins
a lovely and talented => A Lovely and Talented Title
what a title!         => What a Title!
the meaning of life   => The Meaning of Life
hello, world!         => Hello, World!

请注意,大写“和”,“of”,“,”等等,除非它们是字符串中的第一个单词。

答案 1 :(得分:1)

toUpperCase将所有字​​母转换为大写字母。此函数Kibo.capitalize首先将所有字母转换为小写,然后仅将字符串的第一个字母(/^./)转换为大写字母。

Kibo.capitalize('hello') // returns 'Hello'
'hello'.toUpperCase() // returns 'HELLO'

答案 2 :(得分:1)

该函数将字符串大写,即将第一个字母转换为大写字母,将后面的字母转换为小写字母。

console.log(Kibo.capitalize('alEx'));

/*
 * Outputs:
 * 'Alex'
 */

答案 3 :(得分:0)

>>> capitalize("hi mom")
"Hi mom"
>>> capitalize("HI MOM")
"Hi mom"
>>> capitalize("Hi Mom")
"Hi mom"