跳到主要内容
第9页,共12页
重构以实现更短的代码和完整的ES2015,而不是一半
vsync(垂直同步)
  • 1.259万
  • 58
  • 329
  • 412

基本解决方案是:

函数大写FirstLetter(字符串){return string.charAt(0).toUpperCase()+string.slice(1);}console.log(大写首字母('foo'));//

其他一些答案修改字符串.原型(这个答案过去也是这样),但我建议现在不要这样做,因为它具有可维护性(很难找到函数被添加到原型如果其他代码使用相同的名称,可能会导致冲突。

……然后,当你考虑国际化时,这个问题还有很多这个令人惊讶的好答案(埋在下面)显示。

如果您想使用Unicode代码点而不是代码单元(例如,在基本多语言平面之外处理Unicode字符),可以利用以下事实字符串#[@迭代器]使用代码点,您可以使用到本地UpperCase要获得本地正确的大写字母:

const capitalieFirstLetter=([first,…rest],locale=navigator.language)=>first.toLocaleUpperCase(locale)+rest.join(“”)控制台.log(大写第一个字母('fo'),//foo大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉"), // "𐐎𐐲𐑌𐐼𐐲𐑉“(正确!)大写首字母(“italya”,“tr”)//伊塔利亚“(土耳其拉丁文中正确!))

有关更多国际化选项,请参阅原始答案如下.

史蒂夫·哈里森
  • 123.8万
  • 16
  • 88
  • 72