如何更改小写文本,但在javascript中保留大写字母?
我想将文本改为小写,但保留每个句子的第一个字母大写 输入 LOREM Ipsum只是印刷和排版的虚拟文本 工业。乱数假文。已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷商在厨房里印刷 预期 Lorem ipsum只是印刷和排版的虚拟文本 工业。乱数假文。已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷商在厨房里印刷 我不熟悉regexp,我尝试了以下方法:如何更改小写文本,但在javascript中保留大写字母?,javascript,regex,Javascript,Regex,我想将文本改为小写,但保留每个句子的第一个字母大写 输入 LOREM Ipsum只是印刷和排版的虚拟文本 工业。乱数假文。已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷商在厨房里印刷 预期 Lorem ipsum只是印刷和排版的虚拟文本 工业。乱数假文。已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷商在厨房里印刷 我不熟悉regexp,我尝试了以下方法: expected = input.replace(/([A-Z])+/g, "\$&".toLowerCase
expected = input.replace(/([A-Z])+/g, "\$&".toLowerCase())
这是一个循环解决方案,不是很多正则表达式
var str = input.split(" ");
var expected = "";
str.map(function(c){
expected += c.toLowerCase().replace(/^[a-z]/, c[0].toUpperCase())+ " "
})
expected = expected.trim();
您不必使用正则表达式进行强调,因为我们可以简单地使用样式属性来实现这一点
document.getElementById("inputId").style.textTransform = "initial";
为此,您需要在HTML中找到绑定到该变量的id。这就是所需要的。你可以这样做 我所做的是首先将完整字符串更改为小写。现在,通过使用正则表达式,我正在搜索字符串的第一个单词。或者前面有
的任何字符和任意数量的空格字符,并将匹配转换为大写
正则表达式
-匹配字符串的第一个单词^([a-z])
-替换与逻辑OR相同|
-匹配任何\.\s*([a-z])
,后跟任意数量的空格字符,后跟字母
let str=“LOREM Ipsum仅仅是印刷和排版行业的虚拟文本。自16世纪一家未知的印刷商闯入厨房以来,LOREM Ipsum.一直是该行业的标准虚拟文本。”
让op=str.toLowerCase().replace(/^([a-z])\.\s*([a-z])/g,(match)=>match.toUpperCase())
console.log(op)
循环遍历每个句子,然后像javascript一样尝试\u str.charAt(0).toUpperCase()+\u str.substr(1).toLowerCase()
其中
\u str
是一个句子。当你没有太多的句子要处理时,这会很有帮助。你也可以在纯javascript中用小写字母传递所有内容,并通过拆分字符串添加大写字母
input.toLowerCase().split('.').filter(x=> x.length > 0).map(x=> x[0].toUpperCase() ).join('.')
您只想将第二个ipsum更改为小写?为什么
LOREM ipsum
转换为LOREM ipsum
(注意大写字母I
)?@DavidThomas谢谢,这是一个错误。我编辑了我的帖子。@mark maille,“我相信”我问了同样的问题。虽然这(可能)可行,但OP没有提到他们正在使用DOM,您可以在其中设置样式来实现这一点。
input.toLowerCase().split('.').filter(x=> x.length > 0).map(x=> x[0].toUpperCase() ).join('.')