Как изменить текст в нижнем регистре, но сохранить заглавную букву в JavaScript? - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу изменить свой текст в нижнем регистре, но сохранить первую букву каждого предложения в верхнем регистре.

Ввод

LOREM Ipsum - просто DUMMY-текст в индустрии печати и набора текста.Лорем ИПСУМ.С начала 1500-х гг. Является стандартным фиктивным текстом в отрасли, КОГДА неизвестный принтер занял камбуз.

Ожидаемый

Lorem ipsum - просто фиктивный текст печати и набора текстапромышленность.Lorem Ipsum.Является стандартным фиктивным текстом в отрасли с 1500-х годов, когда неизвестный принтер занял камбуз.

Я новичок в регулярном выражении, я попробовал это:

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

Ответы [ 5 ]

0 голосов
/ 17 декабря 2018

Вы также можете сделать это в простом javascript, передав все в нижнем регистре и добавить заглавные буквы, разделив вашу строку.

input.toLowerCase().split('.').filter(x=> x.length > 0).map(x=> x[0].toUpperCase() ).join('.')
0 голосов
/ 17 декабря 2018

Просмотрите каждое предложение и попробуйте javascript, например,
_str.charAt(0).toUpperCase() + _str.substr(1).toLowerCase(), где _str - это предложение.Это будет полезно, если у вас не слишком много предложений для работы.

0 голосов
/ 17 декабря 2018

вам не нужно подчеркивать с помощью регулярных выражений, поскольку мы можем просто достичь этого с помощью атрибута стиля.

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

Для этого вам нужно найти идентификатор, связанный с этой переменной в HTML,Это все, что нужно.

0 голосов
/ 17 декабря 2018

Вы можете сделать это следующим образом

Сначала я изменил полную строку на строчные.теперь с помощью регулярного выражения я ищу либо первое слово строки.или любой символ, которому предшествует . и любое количество пробелов и преобразование соответствия в верхний регистр.

Regex

^([a-z])|\.\s*([a-z])
  • ^([a-z]) - соответствует первому слову строки.
  • | - чередование такое же, как логическое ИЛИ.
  • \.\s*([a-z]) - соответствует любому ., за которым следует любое количество пробелов, за которыми следует алфавит.

let str = "LOREM Ipsum is simply DUMMY text of the printing and typesetting industry. Lorem IPSUM. Has been the industry's standard dummy text ever since the 1500s, WHEN an unknown printer took a galley."

let op = str.toLowerCase().replace(/^([a-z])|\.\s*([a-z])/g, (match)=>match.toUpperCase())
console.log(op)
0 голосов
/ 17 декабря 2018

Это зацикленное решение, а не много регулярных выражений

var str = input.split(" "); 
var expected = "";
str.map(function(c){
  expected += c.toLowerCase().replace(/^[a-z]/, c[0].toUpperCase())+ " "
})
expected = expected.trim(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...