如何使一个字符串的第一个字母大写,但不改变其他字母的大小写?
比如说。
"这是一个测试"
-> "这是一个测试"
"埃菲尔铁塔"
-> "埃菲尔铁塔"
。"/index.html"
-> "/index.html"
。function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
其他一些答案修改了String.prototype
(这个答案以前也是),但我现在建议不要这样做,因为可维护性问题(很难找到函数被添加到prototype
的位置,如果其他代码使用相同的名称/浏览器将来添加相同名称的本地函数,可能会造成冲突)。
这里有一个更加面向对象的方法。
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}
你会调用这个函数,像这样。
"hello world".capitalize();
预期的输出是。
"Hello world"
这里有一个叫ucfirst()的函数("大写首字母 "的缩写)。
function ucfirst(str) {
var firstLetter = str.substr(0, 1);
return firstLetter.toUpperCase() + str.substr(1);
}
你可以通过调用ucfirst("some string")来大写一个字符串 -- 例如。
ucfirst("this is a test") --> "This is a test"
它的工作原理是将字符串分割成两部分。 在第一行,它取出第一个字母,然后在第二行,它通过调用firstLetter.toUpperCase()将第一个字母大写,并将其与字符串的其余部分连接,后者是通过调用str.substr(1)**找到的。
你可能会认为这对一个空字符串来说是失败的,而且在像C语言中,你确实必须要照顾到这一点。但是在JavaScript中,当你从一个空字符串中抽取一个子串时,你只会得到一个空字符串。