Javascript 之后如何大写字符串的所有字符。比如移动键盘

Javascript 之后如何大写字符串的所有字符。比如移动键盘,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我的要求不仅仅是将字符串的第一个字符大写,还有一个段落,我想将每个字符串的第一个字符大写,就像移动设备键盘一样 我已经尝试了以下解决方案,但无法满足我的要求: $('#test').blur(function(event) { var value = $(this).val(); var output = ""; output = value.charAt(0).toUpperCase() + value.slice(1); }); 上面的代码只对第一个字符大写 样本输入: lor

我的要求不仅仅是将字符串的第一个字符大写,还有一个段落,我想将每个字符串的第一个字符大写,就像移动设备键盘一样

我已经尝试了以下解决方案,但无法满足我的要求:

$('#test').blur(function(event) {
 var value = $(this).val();

 var output = "";

 output = value.charAt(0).toUpperCase() + value.slice(1);

});
上面的代码只对第一个字符大写

样本输入:

lorem ipsum只是印刷和排版行业的虚拟文本lorem ipsum从16世纪起就一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印盘,将其拼凑成一本打印样本书。t是什么

预期输出:

Lorem Ipsum只是印刷和排版行业的虚拟文本Lorem Ipsum从16世纪起就一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印盘,将其拼凑成一本打印样本书。T是什么


可以使用正则表达式:匹配字符串的开头或后跟空格的句点,然后匹配字母字符,并使用替换函数对该字符调用
toUpperCase
。还要正确替换
后面的字母
s以及
,使用字符集
[.?!]

constinput=`lorem ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,lorem ipsum一直是行业标准的虚拟文本,当时一家不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书;
常数=input.replace(
/(^ |\[.?!]*)([a-z])/g,
(u,g1,g2)=>g1+g2.toUpperCase()
);

控制台日志(已清理)
您可以使用
字符串#replace()
方法与以下正则表达式进行匹配:

/\.\s*\w/
与自定义替换回调结合使用,该回调将匹配的字符串大写以实现此目的。这里的基本思想是将直接跟在句号后面的第一个字母的任何子字符串大写(即
\.
)。正则表达式还考虑在句号和下一个字母字符(即
\w
)之间出现零个或多个空格(即
\s*
)的情况:

var input=“Lorem Ipsum只是印刷和排版行业的虚拟文本。从16世纪开始,Lorem Ipsum就一直是行业标准的虚拟文本,当时一位不知名的印刷商拿了一个打印工具,将其拼凑成一本字体样本书。就是这样!”;
var result=input.replace(/\.\s*\w/,函数(匹配){
返回match.toUpperCase();
});
log(“基于正则表达式的方法”,结果)试试这个

var input=“Lorem Ipsum只是印刷和排版行业的虚拟文本。从16世纪开始,Lorem Ipsum就一直是行业标准的虚拟文本,当时一位不知名的印刷商拿了一个打印工具,将其拼凑成一本字体样本书。就是这样!”;

console.log(input.charAt(0.toUpperCase()+input.slice(1))
谢谢回复!没有正则表达式有什么办法吗?可能,但正则表达式非常适合这种情况——搜索文本以查找匹配项,并用其他内容替换适当的子字符串。我更喜欢RE而不是其他任何东西。@Nimeshkhatri这里有一个不依赖正则表达式的方法:对我来说,它只适用于第一个L。我的文本还包含由三个点组成的省略号。在这些暂停点之后,我不会改成大写。你对此有什么建议吗?@deblocker请参见“编辑并解释图案”。你说第一个我不工作是什么意思?检查代码段-第一个L按需要大写
let paragraph = document.querySelector('#test').textContent;

let result = paragraph.split('.')
    .map(sentence => sentence.trim())
    .map(sentence => {
        sentence = sentence.replace(sentence[0], sentence[0].toUpperCase()) + sentence.slice(1);
        return sentence;
    });


console.log(result.join('. '));