为什么在大多数JS帮助程序库中没有非大写字母

时间:2013-12-13 08:09:03

标签: javascript extjs ember.js underscore.js

通过JS帮助程序库查找

等字符串

underscore.string
stringjs

或来自

的人

Ember

Sencha的ExtJS

提供 uncapitalize 功能。

有原因吗?
为什么不提供uncap函数是你的库提供了一个cap函数(所有这些都是......)?

传递性在这里很重要。

示例:

"awordWithCamelCase".capitalize() => "AwordWithCamelCase"
"AwordWithCamelCase".uncapitalize() => "awordWithCamelCase"

4 个答案:

答案 0 :(得分:3)

直接制作小写的东西?因为我们有:

String('hello').toLowerCase();

作为内置的Javascript函数。如果这不是你要求的,你需要让你的问题更清楚。

附加说明:

Sencha的ExtJS也有一个shoelace.tie()方法和一个babyfood.mouthfeed()方法,因此它不实用。

答案 1 :(得分:2)

我想这是因为对这样的功能没有太多的需求(或使用)。

正如@ dc2在他的回答中提到的,大多数时候可以使用toLowerCase()uncapitalize函数非常简单(来自ExtJS源代码):

return string.charAt(0).toLowerCase() + string.substr(1);

jQuery开发人员可能会认为它会给整个库增加不必要的膨胀。

而且,虽然ExtJS 对于某些事情来说是非常好的,但它可以说是“臃肿”。

答案 2 :(得分:2)

    function uncapitalize(text) {
         if(!text || typeof text !== "string") {
            return ''; 
         }

         return text.charAt(0).toLowerCase() + text.substr(1);
    }

    uncapitalize('Aaa');
    --> 'aaa'

    uncapitalize('AaA');
    --> 'aaA'

    'Aaa'.toLowerCase();
    --> 'aaa'

    'AaA'.toLowerCase();
    --> 'aaa'

答案 3 :(得分:0)

因为你可以自己做(^.表示“第一个字符”):

'AzeRty'.replace(/^./, function (m) { return m.toLowerCase(); }); // "azeRty"