2016-05-08 4 views
0

Допустим, мой текстовое поле имеет эту строку:Пользовательские заглавной строки с использованием регулярных выражений

это давно установленный факт, что читатель будет отвлекаться. на читаемый контент страницы при просмотре его макета. Точка с использованием Lorem Ipsum состоит в том, что она имеет более или менее нормальное распределение букв , в отличие от использования.

Я хочу настроить эту строку, когда пользователь печатает в текстовом поле.

  • К верхнему регистру первого символа
  • Для строчной букв других символов
  • верхнего регистр после точечного характера
  • Force добавить символ пробела а после точки и запятой.

Выходная строка должна выглядеть так:

İ т длинный установленный факт, что читатель будет отвлекаться. B y читаемый контент страницы при просмотре его макета. T Его точка с использованием l orem Ipsum заключается в том, что он имеет более или менее нормальное распределение букв , в отличие от использования.

Как я могу это сделать и с каким видом regular expression?

+0

Как можно быть в состоянии идентичности, «Lorem» должен быть превращен в нижнем регистре? Слова, следующие за периодом, должны быть капитализированы. Но каковы критерии, которыми Лорим не должен быть? Если вы не можете определить правило, вы не сможете заставить код делать то, что вы сами не знаете, как – Veverke

+0

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

+0

В вашем форматированном примере вы не выделили выделенные жирным шрифтом буквы, которые вы хотите заглавными буквами? Немного смущает. – Veverke

ответ

0

Я не уверен, что это решение, которое вы хотите, но для начала, вы можете использовать:

var text = 'it is a long established fact that a reader will be distracted. by the readable content of a page when looking at its layout.the point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters,as opposed to using.'; 
var r = /\.\s?/; 
var sentences = text.split(r); 
var desiredResult = new Array(); 

for (var i = 0; i < sentences.length; i++) { 
    if (sentences[i].length > 0) { 
     var fixedSentence = sentences[i][0].toUpperCase() + sentences[i].substr(1).toLowerCase(); 
     if (i > 0 && sentences[i][0] != ' ') { 
      fixedSentence = ' ' + fixedSentence; 
     } 

     desiredResult.push(fixedSentence); 
     console.log(fixedSentence); 
    } 
} 
+0

Как я могу; добавить пробел после точки и запятой, если нет места –

+0

почему бы не добавить код, чтобы сделать это? – Veverke

Смежные вопросы