我试图将每个单词的第一个字母转换为大写,例如:“hello world”应该是“Hello World”。将每个单词的第一个字母转换为大写字母JS
这是我的代码到目前为止。
function test() {
var doc = document.getElementById("testInput").value;
var str = doc.replace(/\w\S*/g, doc.charAt(0).toUpperCase() + doc.substring(1).toLowerCase());
document.getElementById("tst").innerHTML = str;
}
而且让我们说我输入的 “Hello World”,预期的结果是 “Hello World” 的 但我得到的是 “世界,你好你好世界”。
所以我的问题是,它只分配第一个单词,跳过第二个,但它打印两次。
这就像我想要的一样!但是,你能否解释一下为什么会这样?“函数(txt)”如何知道它应该将doc作为参数? – Marik
'.abc'变成'.Abc'并且'+ abc'变成'+ Abc'是否有效? –
所以这里发生的事情是,你只是一次一个地传递子串。首先,你自己传递“hello”,它被分配给txt变量。然后以“你好”的形式返回。然后,你传入分配给txt变量的“世界”。然后它被作为“世界”返回。这提供了“Hello World”的最终结果。 –