将每行的第一个单词大写
Capitalize first word of each line
我正在尝试使用 jquery 将每行的第一个单词大写。
我试过以下脚本:
sentence = sentence.charAt(0).toUpperCase() + sentence.slice(1);
这对第一行工作正常,但其余行没有大写。
我希望下一行的首字母也大写。
下一行也应该继续这个过程。
我认为添加长句可能会起作用,但我担心这会给系统带来沉重的负担。如果是这样,有没有其他简单的方法可以解决这个问题?
正如之前在评论中所说,您需要指定文本中的新行。只是一个新行 (\n
) ?这是一个仅使用换行符的示例:
var text = document.getElementById("pre").innerText,
newText = text
.split(/\n/g)
.map(x => x.charAt(0).toUpperCase() + x.substr(1))
.join("\n");
console.log(newText);
<pre id="pre">
lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ut leo mauris.
integer pharetra imperdiet mauris a tempor.
cras facilisis pulvinar porta. cras viverra pellentesque dui, ut pulvinar ex commodo eu.
curabitur sodales vitae velit ut luctus.
aliquam diam justo, facilisis vitae facilisis nec, commodo ut nunc.
duis bibendum, sem laoreet mollis laoreet, ipsum velit pulvinar magna, quis accumsan leo felis id lorem. proin et suscipit dui.
duis porttitor nibh non faucibus pretium.
</pre>
大写函数取自 here。注意第3行和第6行多了一个句子,但不换行,不予处理。
这是一个使用普通 javascript
的解决方案:
let sentence = 'this is a new sentence.';
console.log(sentence.split(' ', 1)[0]
.charAt(0)
.toUpperCase()
.concat(sentence.substring(1)));
我正在尝试使用 jquery 将每行的第一个单词大写。
我试过以下脚本:
sentence = sentence.charAt(0).toUpperCase() + sentence.slice(1);
这对第一行工作正常,但其余行没有大写。 我希望下一行的首字母也大写。 下一行也应该继续这个过程。
我认为添加长句可能会起作用,但我担心这会给系统带来沉重的负担。如果是这样,有没有其他简单的方法可以解决这个问题?
正如之前在评论中所说,您需要指定文本中的新行。只是一个新行 (\n
) ?这是一个仅使用换行符的示例:
var text = document.getElementById("pre").innerText,
newText = text
.split(/\n/g)
.map(x => x.charAt(0).toUpperCase() + x.substr(1))
.join("\n");
console.log(newText);
<pre id="pre">
lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ut leo mauris.
integer pharetra imperdiet mauris a tempor.
cras facilisis pulvinar porta. cras viverra pellentesque dui, ut pulvinar ex commodo eu.
curabitur sodales vitae velit ut luctus.
aliquam diam justo, facilisis vitae facilisis nec, commodo ut nunc.
duis bibendum, sem laoreet mollis laoreet, ipsum velit pulvinar magna, quis accumsan leo felis id lorem. proin et suscipit dui.
duis porttitor nibh non faucibus pretium.
</pre>
大写函数取自 here。注意第3行和第6行多了一个句子,但不换行,不予处理。
这是一个使用普通 javascript
的解决方案:
let sentence = 'this is a new sentence.';
console.log(sentence.split(' ', 1)[0]
.charAt(0)
.toUpperCase()
.concat(sentence.substring(1)));