在字符串中大写单词的最佳方法是什么?


当前回答

既然每个人都给了您所要求的JavaScript答案,我将添加CSS属性text-transform: capitalize将执行此操作。

我意识到这可能不是你想要的-你没有给我们任何上下文,你正在运行这个-但如果它只是为了表示,我肯定会选择CSS替代方案。

其他回答

既然每个人都给了您所要求的JavaScript答案,我将添加CSS属性text-transform: capitalize将执行此操作。

我意识到这可能不是你想要的-你没有给我们任何上下文,你正在运行这个-但如果它只是为了表示,我肯定会选择CSS替代方案。

使用JavaScript和html

String.prototype.capitalize = function() { 返回this.replace (/ (^ | \ s) ([a - z]) / g函数(m, p1, p2) { return p1 + p2.toUpperCase(); }); }; <form name="form1" method="post"> <input name="instring" type="text" value="this is the text string" size="30"> <input type="button" name="Capitalize" value="Capitalize >>" onclick="form1.outstring.value=form1.instring.value.capitalize();" > <input name="outstring" type="text" value="" size="30"> > < /形式

基本上,你可以用string。capitalize()它会大写每个单词的第一个字母。

来源:http://www.mediacollege.com/internet/javascript/text/case-capitalize.html

这应该涵盖了最基本的用例。

const capitalize = (str) => {
    if (typeof str !== 'string') {
      throw Error('Feed me string')
    } else if (!str) {
      return ''
    } else {
      return str
        .split(' ')
        .map(s => {
            if (s.length == 1 ) {
                return s.toUpperCase()
            } else {
                const firstLetter = s.split('')[0].toUpperCase()
                const restOfStr = s.substr(1, s.length).toLowerCase()
                return firstLetter + restOfStr
            }     
        })
        .join(' ')
    }
}


capitalize('THIS IS A BOOK') // => This Is A Book
capitalize('this is a book') // => This Is A Book
capitalize('a 2nd 5 hour boOk thIs weEk') // => A 2nd 5 Hour Book This Week

编辑:改进了映射的可读性。

一个简单,直接(非正则)的解决方案:

const capitalizeFirstLetter = s => 
  s.split(' ').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')

将字符串拆分为单词数组(使用空格分隔符) 将每个单词分成第一个字符+单词中的其余字符 第一个字母转换为大写字母,其余字母保持原样 将数组连接回带有空格的字符串

http://www.mediacollege.com/internet/javascript/text/case-capitalize.html是众多答案中的一个。

谷歌可以是解决此类问题所需的全部内容。

naïve方法是用空格分隔字符串,结果数组中每个元素的首字母大写,然后将它们重新连接起来。这就保留了现有的大写(例如,HTML仍然是HTML,而不会变成像HTML那样愚蠢的东西)。如果不希望产生这种影响,请在拆分字符串之前将整个字符串转换为小写字母。