2011-10-16 71 views
0

我期待通过代码kibo.js,发现这个功能:这个奇怪的大写函数的目的是什么?

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

任何人有,为什么他们可能会改用只是.toUpperCase的任何想法?

PS - 基博在https://github.com/marquete/kibo/blob/master/kibo.js

+0

是有一些原因,你不能只是[测试它自己(http://jsfiddle.net/3xs9A/1/)? – user113716

+0

我没有很好的解释这个问题......我想我会这样做的方式是没有正则表达式的,第一个字符是toUpperCase,其余的是toLowerCase。 – Geoff

回答

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! 

注意,它利用“和”,“中”,“中”,等等,除非它们是字符串中的第一个字。

1

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

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

该函数将字符串大写,即将第一个字母转换为大写字母和下列字母 - 转换为小写。

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

/* 
* Outputs: 
* 'Alex' 
*/ 
0
>>> capitalize("hi mom") 
"Hi mom" 
>>> capitalize("HI MOM") 
"Hi mom" 
>>> capitalize("Hi Mom") 
"Hi mom" 
相关问题