Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改小写文本,但在javascript中保留大写字母?_Javascript_Regex - Fatal编程技术网

如何更改小写文本,但在javascript中保留大写字母?

如何更改小写文本,但在javascript中保留大写字母?,javascript,regex,Javascript,Regex,我想将文本改为小写,但保留每个句子的第一个字母大写 输入 LOREM Ipsum只是印刷和排版的虚拟文本 工业。乱数假文。已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷商在厨房里印刷 预期 Lorem ipsum只是印刷和排版的虚拟文本 工业。乱数假文。已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷商在厨房里印刷 我不熟悉regexp,我尝试了以下方法: expected = input.replace(/([A-Z])+/g, "\$&".toLowerCase

我想将文本改为小写,但保留每个句子的第一个字母大写

输入 LOREM Ipsum只是印刷和排版的虚拟文本 工业。乱数假文。已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷商在厨房里印刷

预期 Lorem ipsum只是印刷和排版的虚拟文本 工业。乱数假文。已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷商在厨房里印刷

我不熟悉regexp,我尝试了以下方法:

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('.')