可变值javascript的大写首字母

时间:2018-08-28 01:34:32

标签: javascript jquery css innerhtml

我试图如下将变量值的输出字符串大写;

我尝试过:

document.getElementById('namePlaceholder').innerHTML =  name.value.charAt(0).toUpperCase() + ' is here ';

name.value是用户输入,因此我的尝试是将name的第一个字母大写。 例子

name.value = james

首选结局詹姆斯在这里。

是否有一个简单的javascript解决方案?

2 个答案:

答案 0 :(得分:1)

您无法在尝试时直接更改字符串-您必须通过串联所需的片段来创建新字符串:

document.getElementById('namePlaceholder').innerHTML =  
  name.value.charAt(0).toUpperCase() +   // will give you "J"
  name.value.slice(1).toLowerCase() +    // will give you "ames"
  ' is here ';

通俗地说,slice(1)部分说“抓住第一个字符后的所有内容”。用更专业的术语来说,如果您使用James的名字,则可以将其视为一系列字母(不是数组,而是一种字母):

['J', 'a', 'm', 'e', 's']

您可以访问单个字母,例如name[0],它将使您获得“ J”,而访问name[3]将使您获得“ e”。然后,您可以执行name.slice(1),该操作将从“ a”开始并获取其后的所有内容:“ ames”。为了进一步说明,您可以执行name.slice(-2)以获取最后两个字符:“ es”。或者,如果您想要“我”,则可以执行name.slice(2, 4)

答案 1 :(得分:0)

使用substring

document.getElementById('namePlaceholder').innerHTML =  
        name.value.charAt(0).toUpperCase() + 
        name.value.substr(1) +
        ' is here ';

使用Regular Expression:

document.getElementById('namePlaceholder').innerHTML =  
     name.value.replace(/^\w/, c => c.toUpperCase()); + ' is here ';

与以下内容完全相似:

document.getElementById('namePlaceholder').innerHTML =  
     name.value.replace(/^\w/, function (chr) {
        return chr.toUpperCase();
     }); 
     + ' is here ';