JSFiddle - React, Tailwind, and code Playground

HTML

<body>
<div id="postText">
тестовая строчка простая<br>
тестовая! строчка простая<br>
тестовая строчка. простая<br>
тестовая строчка простая<br>

</div>

  <div>
  
             
 <input type="text"  id="postName" class="form-control" name="postName"  value=""  id="title" />
  </div> 
              
             
             </body>

CSS

/* общий стиль */
    input[type="checkbox"]{zoom:1.5; }
    .hr{border-bottom: 1px solid #000}
    .block{ width: 450px; padding: 10px; border: 1px solid #000;float: right; }
    .information_json * {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }
    /* стиль динамических полей*/
    .pull-right {float: left;}
    .form-control {
        display: block;
        width: 100%;
        height: 34px;
        padding: 6px 12px;
        font-size: 14px;
        line-height: 1.42857143;
        color: #555;
        background-color: #fff;
        background-image: none;
        border: 1px solid #ccc;
        border-radius: 4px;
        -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
        box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
        -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
        -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
        transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
    }
    .btn {
        display: inline-block;
        padding: 6px 12px;
        margin-bottom: 0;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.42857143;
        text-align: center;
        white-space: nowrap;
        vertical-align: middle;
        -ms-touch-action: manipulation;
        touch-action: manipulation;
        cursor: pointer;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        background-image: none;
        border: 1px solid transparent;
        border-radius: 4px;
    }
    .btn-danger {
        color: #fff;
        background-color: #d9534f;
        border-color: #d43f3a;
    }
    .btn-success {
        color: #fff;
        background-color: #5cb85c;
        border-color: #4cae4c;
    }

JavaScript

// возвращаем текст более валидным
    function getTrueText(txt)
    {
        txt = txt.replace(/ {1,}/g," ");
        txtw = txt.split(' ');

        txtl = txtw.length;
        inqote = false;
        for (var i = 0; i < txtl; i++) {
            if (txtw[i].indexOf("'") == 0 || txtw[i].indexOf('"') == 0) {
                //если есть кывачки в начале, то пропускаем
                inqote = true; //но отметим что вошли в зону ковычек
            } else if (txtw[i].lastIndexOf("'") == txtw[i].length - 1 || txtw[i].lastIndexOf('"') == txtw[i].length - 1) {
                //если есть кывачки в конце, то пропускаем
                inqote = false; //но отметим что вышли из зоны ковычек
            } else if (i != 0 && (txtw[i - 1].lastIndexOf('.') == txtw[i - 1].length - 1 ||
                txtw[i - 1].lastIndexOf('!') == txtw[i - 1].length - 1)) {
                //если предыдущее слово заканчивается точкой или воскл. знаком
                if (/[a-zA-Z]+/g.test(txtw[i][0]) == false) txtw[i] = txtw[i][0] + txtw[i].substr(1);
            } else {
                //а это простое слово, его занижаем, если оно не внутри кавычек
                if (/[a-zA-Z]+/g.test(txtw[i][0]) == false && inqote == false) txtw[i] = txtw[i].toLowerCase();
            }
        }

            return txtw.join(' ').trim();

    }
    
    
    
    
    
    
    
    
     var inputFocused;


    $('div').on('focus', '#prizName,#postName, #description, #additional',function() {
        inputFocused = $(this);
       
    });

   
    
    
     $('#postText').on('mouseup', function(e) {

        if (inputFocused == null) {
            return false;
        }
        if(getSelectedText()!="") {
            if (inputFocused != null) {

                if (e.ctrlKey === true) {
                    inputFocused.val(getTrueText(getSelectedText()));

                } else if (e.altKey === true) {
                    inputFocused.val(getTrueText(inputFocused.val() + ", " +...