变量值首字母大写 javascript

Uppercase first letter of variable value javascript

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

我试过:

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

name.value 是用户输入,所以我尝试将名称的第一个字母大写。 示例

name.value = james

希望的结果詹姆斯来了

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

您不能在尝试时直接改变字符串 - 您必须通过连接所需的片段来创建新字符串:

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) 部分表示 "grab everything after the first character"。用更专业的术语来说,如果你有 James 这个名字,你可以把它想象成一系列字母(不是数组,而是有点像):

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

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

使用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 ';