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

时间:2018-12-17 10:23:48

标签: javascript regex

我想在小写字母中更改文本,但将每个有义词的首字母大写。

输入

  

LOREM Ipsum只是打印和排版的DUMMY文本   行业。 Lorem IPSUM。一直是业界标准的虚拟文字   从1500年代开始,当一个不知名的打印机接过厨房时。

预期

  

Lorem ipsum只是打印和排版的伪文本   行业。 Lorem ipsum。一直是业界标准的虚拟文字   从1500年代开始,当时一位不知名的打印机上了厨房。

我是regexp的新手,我尝试过此方法:

expected = input.replace(/([A-Z])+/g, "\$&".toLowerCase())

5 个答案:

答案 0 :(得分:2)

您可以这样做

我所做的是首先将完整字符串更改为小写。现在通过使用正则表达式,我正在搜索字符串的第一个单词。或任何以SELECT sa.start_time, max(`Monday`) as Monday, max(`Tuesday`) as Tuesday, max(`Wednesday`) as Wednesday, max(`Thursday`) as Thursday, max(`Friday`) as Friday FROM ( SELECT ders_saat, (CASE WHEN days= 1 THEN d.lesson_name ELSE 0 END) AS `Monday`, (CASE WHEN days= 2 THEN d.lesson_name ELSE 0 END) AS `Tuesday`, (CASE WHEN days= 3 THEN d.lesson_name ELSE 0 END) AS `Wednesday`, (CASE WHEN days= 4 THEN d.lesson_name ELSE 0 END) AS `Thursday`, (CASE WHEN days= 5 THEN d.lesson_name ELSE 0 END) AS `Friday` FROM ders_programi inner join lessons d on d.id = lesson_id ) AS sums left join hours sa on sa.start_time = sums.ders_saat group by sa.start_time 开头的字符以及任意数量的空格字符并将匹配转换为大写。

  

正则表达式

.
  • ^([a-z])|\.\s*([a-z]) -匹配字符串的第一个单词。
  • ^([a-z])-与逻辑OR相同。
  • |-匹配任何\.\s*([a-z]),后跟任意数量的空格字符和字母。

.

答案 1 :(得分:0)

这是一个循环的解决方案,不是很多正则表达式

var str = input.split(" "); 
var expected = "";
str.map(function(c){
  expected += c.toLowerCase().replace(/^[a-z]/, c[0].toUpperCase())+ " "
})
expected = expected.trim(); 

答案 2 :(得分:0)

您不必使用正则表达式,因为我们可以使用样式属性轻松实现此目的。

document.getElementById("inputId").style.textTransform = "initial";

为此,您需要找到绑定到HTML中该变量的ID。这就是所有需要的。

答案 3 :(得分:0)

遍历每个句子,然后像javascript一样尝试
_str.charAt(0).toUpperCase() + _str.substr(1).toLowerCase() _str是一个句子。当您不需要处理太多句子时,这将很有帮助。

答案 4 :(得分:0)

您还可以通过使用小写字母传递所有内容,并通过拆分字符串来添加大写字母,从而使用纯JavaScript来实现。

input.toLowerCase().split('.').filter(x=> x.length > 0).map(x=> x[0].toUpperCase() ).join('.')