jQuery标题案例

AnA*_*ice 36 javascript string jquery

是否有一个内置的方式与jQuery"标题案例"一个字符串?所以考虑到像鲍勃史密斯这样的东西,它变成了"鲍勃史密斯"?

Ben*_*ank 64

你不需要jQuery; 它可以使用本机.replace()方法完成:

function toTitleCase(str) {
    return str.replace(/(?:^|\s)\w/g, function(match) {
        return match.toUpperCase();
    });
}

alert(toTitleCase("foo bar baz")); // alerts "Foo Bar Baz"
Run Code Online (Sandbox Code Playgroud)

  • @TNC - CSS解决方案可能是提问者原始*问题*的更好解决方案,但它实际上并没有解决问题*问题*(如何更改"字符串").虽然提到jQuery强烈暗示它,但问题从未真正说明涉及到浏览器; 毕竟,它们可以使用[节点中的jQuery](http://stackoverflow.com/questions/1801160)!;-) (5认同)

TNC*_*TNC 47

您可以使用css,例如:

.className 
{
    text-transform:capitalize;
}
Run Code Online (Sandbox Code Playgroud)

这首字母大写.你可以在这里阅读更多

  • 认真.这是正确的答案.所有其他人都只是愚蠢而且在顶部.如果你必须有jQuery,那么试试这个:$('#test').css('textTransform','capitalize'); (5认同)
  • @TNC如果字符串在DOM中,这很好,但如果你想在Javascript中使用某些东西,那么这个答案显然是不正确的. (5认同)
  • 这是一个糟糕的答案.它首先执行提问者所要求的内容,它不会使字符串变为驼峰,它会改变文本**的显示方式**.将一个你不想显示的字符串串起来有很多原因,例如jQuery这样做是为了让你做`.css('font-size',aSize)`来设置`.style.fontSize = aSize `,进一步说,假设jQuery公开了一个方法,这是合理的.即使改变显示器是提问者想要的,由于[浏览器错误](http://reference.sitepoint.com/css/text-transform#compatibilitysection),它也不太可靠. (4认同)
  • 我认为这不能正确回答问题,因为该字符串可能永远不会在 HTML 上下文中使用。 (3认同)
  • @TNC,OP提到了想要jQuery的解决方案.对我来说这意味着他正在寻找一种方法来使用jQuery或Javascript.但考虑到大量的jQuery用户正在进行简单的DOM转换,我认为你是对的. (2认同)

小智 19

在jQuery 1.4+(至少)中你可以使用

var camelized = jQuery.camelCase("some-string");
// Returns "someString"
Run Code Online (Sandbox Code Playgroud)

当我上次检查文档时,我找不到它,但它在那里并在内部使用.

  • `jQuery.camelCase('bob smith')='bob smith'`但问题是要把它变成Bob Smith. (6认同)
  • 看似无证的内部功能; 有了这么简单的事情,最好简单地自己写出这个函数,而不是依赖于任何时候可能被拉的东西.查看[源代码](http://james.padolsey.com/jquery/#v=1.5&fn=jQuery.camelCase)获取此功能,您可以看到如何轻松完成此操作 (5认同)

小智 5

如果您想与世界上所有键入大写字母的可怕人员作战,并且同时标出标题,您可以在此处使用以下最佳答案的变体:

function toTitleCase(str) {
        var lcStr = str.toLowerCase();
        return lcStr.replace(/(?:^|\s)\w/g, function(match) {
            return match.toUpperCase();
        });
    }

alert(toTitleCase("FOO BAR baz")); // alerts "Foo Bar Baz"
Run Code Online (Sandbox Code Playgroud)