如何在 JavaScript 中使字符串的第一个字母大写?
技术问答
447 人阅读
|
0 人回复
|
2023-09-11
|
如何在不改变任何其他字母的情况下大写字符串的第一个字母?8 x6 W$ v2 y( e! t6 i' Z8 L# E
例如: r$ l6 S7 B7 p% f" R
"this is a test" → "This is a test"
: J& w2 d/ K! k( q/ i2 ^7 w1 B( Y"the Eiffel Tower" → "The Eiffel Tower"1 d: x, R7 x5 K! C0 I: a( P8 l
"/index.html" → "/index.html"
& L* o [" ]( Y7 k, f( J 解决方案:
. D+ P$ _+ t6 p 基本的解决方案是:
) g( T9 G2 l7 f4 gfunction capitalizeFirstLetter(string) { return string.charAt(0).toUpperCase() string.slice(1);}console.log(capitalizeFirstLetter('foo); // Foo% t. {: K9 X3 W7 n E$ n7 ^0 M
修改了其他答案String.prototype(这个答案也曾经修改过),但由于可维护性,我现在建议不要这样做(很难找出函数被添加到的位置prototype,如果其他代码使用相同的名称/浏览器,将来可能会导致冲突添加相同名称的本机函数)。
' s3 v0 |) |) U, ?. e若要使用 Unicode 代码点而不是代码单元(如处理基本多语言平面以外的 Unicode 字符),你可以用String#[@iterator]使用代码点的事实,你可以使用它toLocaleUpperCase获取区域设置正确的大写:
u' a+ {7 E. M/ M5 Y- z" jconst capitalizeFirstLetter = ([ first,...rest ],locale = navigator.language) => first.toLocaleUpperCase(locale) rest.join('')console.log( capitalizeFirstLetter('foo// Foo capitalizeFirstLetter("????????????"),// "????????????" (correct!) capitalizeFirstLetter("italya",'tr // talya" (correct in Turkish Latin!))
' G' k) i& f |: b' D- `6 A |
|
|
|
|
|