开发者问题收集

如何在 JavaScript 中将字符串的首字母变为大写?

2009-06-22
4181498

如果字符串的第一个字符是字母,如何将其变为大写,但不改变其他字母的大小写?

例如:

  • “this is a test”“This is a test”
  • “the Eiffel Tower”“The Eiffel Tower”
  • “/index.html”“/index.html”
3个回答
function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

其他一些答案修改了 String.prototype (这个答案也曾经修改过),但是由于可维护性,我现在不建议这样做(很难找出函数被添加到 prototype 的位置,并且如果其他代码使用相同的名称/浏览器将来添加具有相同名称的本机函数,可能会导致冲突)。

Steve Harrison
2009-06-22

编辑以添加此免责声明 :请阅读评论以了解编辑 JS 基本类型的风险。


这是一个更面向对象的方法:

Object.defineProperty(String.prototype, 'capitalize', {
  value: function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
  },
  enumerable: false
});

您可以像这样调用该函数:

"hello, world!".capitalize();

预期输出为:

"Hello, world!"
Steve Hansell
2010-07-20

仅使用 CSS 及其 text-transform 属性:

p::first-letter {
    text-transform: capitalize;
}
sam6ber
2012-07-17