我试图如下将变量值的输出字符串大写;
我尝试过:
document.getElementById('namePlaceholder').innerHTML = name.value.charAt(0).toUpperCase() + ' is here ';
name.value是用户输入,因此我的尝试是将name的第一个字母大写。 例子
name.value = james
首选结局詹姆斯在这里。
是否有一个简单的javascript解决方案?
答案 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 ';