Показать сообщение отдельно
  #11 (permalink)  
Старый 03.08.2022, 03:17
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Нашел еще вот такое решение но не могу понять как его перенести в обычный блок

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Example 1</title>

    <script>
        var vowel = new String( 'аеёиоуыэюя' ); // Гласные буквы
        var voiced = new String( 'бвгджзлмнрхцчшщ' ); // Звонкие и шипящие согласные
        var deaf = new String( 'кпстф' ); // Глухие согласные
        var brief = new String( 'й' ); // Й
        var other = new String( 'ьъ' ); // Другие
        var cons = new String( 'бвгджзйклмнпрстфхцчшщ' ); // Все согласные
        // Валидация правильности введенной строки
        function validateString( s ) {
            // Поленился делать :)
            return s;
        } // function validateString (s)
        // Есть ли в строке гласные?
        function isNotLastSep( remainStr ) {
            var is = false;
            for ( var i = 0; i < remainStr.length; i++ ) {
                if ( vowel.indexOf( remainStr.substr( i, 1 ) ) != -1 ) {
                    is = true;
                    break;
                }
            } // for (var i = 0; i < remainStr - 1; i++)
            return is;
        } // function isLastSep (remainStr)
        // Собственно функция разбиения слова на слоги
        function getSeparatedString( s ) {
            // Добавляем слог в массив и начинаем новый слог
            function addSep() {
                sepArr.push( tmpS );
                tmpS = '';
            } // function addSep ()
            s = validateString( s );
            var tmpL = new String(); // Текущий символ
            var tmpS = new String(); // Текущий слог
            var sepArr = new Array(); // Массив слогов
            for ( var i = 0; i < s.length; i++ ) {
                tmpL = s.substr( i, 1 );
                tmpS += tmpL;
                // Проверка на признаки конца слогов
                // если буква равна 'й' и она не первая и не последняя и это не последний слог
                if (
                    ( i != 0 ) &&
                    ( i != s.length - 1 ) &&
                    ( brief.indexOf( tmpL ) != -1 ) &&
                    ( isNotLastSep( s.substr( i + 1, s.length - i + 1 ) ) )
                ) {
                    addSep();
                    continue;
                }
                // если текущая гласная и следующая тоже гласная
                if (
                    ( i < s.length - 1 ) &&
                    ( vowel.indexOf( tmpL ) != -1 ) &&
                    ( vowel.indexOf( s.substr( i + 1, 1 ) ) != -1 )
                ) {
                    addSep();
                    continue;
                }
                // если текущая гласная, следующая согласная, а после неё гласная
                if (
                    ( i < s.length - 2 ) &&
                    ( vowel.indexOf( tmpL ) != -1 ) &&
                    ( cons.indexOf( s.substr( i + 1, 1 ) ) != -1 ) &&
                    ( vowel.indexOf( s.substr( i + 2, 1 ) ) != -1 )
                ) {
                    addSep();
                    continue;
                }
                // если текущая гласная, следующая глухая согласная, а после согласная и это не последний слог
                if (
                    ( i < s.length - 2 ) &&
                    ( vowel.indexOf( tmpL ) != -1 ) &&
                    ( deaf.indexOf( s.substr( i + 1, 1 ) ) != -1 ) &&
                    ( cons.indexOf( s.substr( i + 2, 1 ) ) != -1 ) &&
                    ( isNotLastSep( s.substr( i + 1, s.length - i + 1 ) ) )
                ) {
                    addSep();
                    continue;
                }
                // если текущая звонкая или шипящая согласная, перед ней гласная, следующая не гласная и не другая, и это не последний слог
                if (
                    ( i > 0 ) &&
                    ( i < s.length - 1 ) &&
                    ( voiced.indexOf( tmpL ) != -1 ) &&
                    ( vowel.indexOf( s.substr( i - 1, 1 ) ) != -1 ) &&
                    ( vowel.indexOf( s.substr( i + 1, 1 ) ) == -1 ) &&
                    ( other.indexOf( s.substr( i + 1, 1 ) ) == -1 ) &&
                    ( isNotLastSep( s.substr( i + 1, s.length - i + 1 ) ) )
                ) {
                    addSep();
                    continue;
                }
                // если текущая другая, а следующая не гласная если это первый слог
                if (
                    ( i < s.length - 1 ) &&
                    ( other.indexOf( tmpL ) != -1 ) &&
                    ( ( vowel.indexOf( s.substr( i + 1, 1 ) ) == -1 ) ||
                        ( isNotLastSep( s.substr( 0, i ) ) ) )
                ) {
                    addSep();
                    continue;
                }
            } // for (var i = 0; i < s.length; i++)
            sepArr.push( tmpS );
            return sepArr.join( '-' );
        } // function getSeparatedString (s)
    </script>
    <style>
        body {
            width: 60%;
            margin-left: 20%;
        }

        .block {
            hyphens: auto;
            -ms-hyphens: auto;
            -moz-hyphens: auto;
            -webkit-hyphens: auto;
        }
    </style>
</head>

<body>
    <div class="blok">
        И я постоянно спрашиваю представителей Литкома, группы, ведь это мнение важно. Мы можем посмотреть у других
        местностей, какие есть проекты, например, как те же открытки. Он затрагивает денежный ресурс. мы можем все это
        напечатать и сделать, но что если они группам не нужны?
        И только вот эта связь через представителя группы с Комитетом осуществляет продуктивность, как я это понимаю
        сегодня и как я понимал, когда был Литкомом группы. Мы просим приносить обратную связь, потому что проводится
        много мероприятий, бывают периодически опросы переводческого Комитета, ZOOM собрания, где регионы просят
        обратную связь и Литком — связующее звено.
        Наше служение — не только обеспечение литературой. Мало кто знает, что девяносто процентов всех денег АН идут с
        продажи литературы. Для миссий на развитие, рабочие поездки, обеспечение БУ Комитета литературой. Деньги на это
        идут с продажи литературы. И вот обо всем об этом рассказывет Литком, ведь новички приходят и те, кто выбирается
        на служение о многом не знают.
    </div>
    <form>
        <input type="text" size="30" name="fromString" value="">
        <input type="button" value="Go!"
            onClick="document.forms[0].elements[2].value = getSeparatedString (document.forms[0].elements[0].value);">
        <br>
        <input type="text" size="30" name="toString" value="">
    </form>
</body>

</html>
Ответить с цитированием