подскажите RegExp для замены пустых строк в тексте.
РегЕкспы вызывают у меня взрыв мозга ((
мне нужно заменить в тексте пустые строки которые созданы с помощью '\n' строки созданные пробелами. хотел сделать так text.replace(/\n\n/g,'\n \n') но понял, что во первых это не правильно отработает \n\n\n а также к примеру "\n " и тому подобные вещи тоже нормально не отработаются. был бы признателен за регЕксп и по возможности за разжевывание его. |
mitiya,
Приведите пару подобных текстов, каждый обрамите в цитату |
mitiya,
не очень хорошо объяснили ;) var txt = "\n\n"; var reg = new RegExp("\n","g"); alert(txt.replace(reg, "LOL")); вот это наверно вам нужно? |
text = '1234\n \n567\n\n89'; alert( text.replace(/\n\n/g,'\n| |\n')); первую пустую строку он не заменит, а надо как сюда вставлять скрипты с кнопкой запустить ? |
mitiya,
вы хотите снести переводы строк? |
Цитата:
количество символов которое влезет на экран. Хоть шрифт и моноширинный, но перевод строки вносит путаницу. Хочу заменить эти пустые строки соответствующим ширине строки (при данном разрешении) количеством пробелов. но при все этом не не могу быть уверенным в том что эти пустые строки состоят только из '\n\n'. Они так же могут содержать неопределенное количество пробелов или других \n. |
mitiya,
:blink: во первых, придеться делать   - No-Break-Space непереносимый пробел (вроде так называеться - я долго не пользовался) что хреново во вторых, сайты на разных системах и компах с разным разрешением по разному отображаются что приведет к съезду верстки сайта |
mitiya,
Вам наверно нун выводить текст в скрытый postion:fixed;z-index:-1000;overflow-y:auto; div c шириной экрана и нужной высоты По событию scroll - считать символы уместившиеся в данный рамер блока |
Цитата:
|
Цитата:
Просто встаавляете строками по триста символов - по событию скролл - отнимаете последнее и вставляете половину 150 - ежели скролла нет - так и оставляем - есть - отнимаем половину добавленного - 75 |
на счет события скролл блока вы имеете в виду появление полоски прокрутки у бока с фиксированной высотой ? мне интересно как это работает в мобильных браузерах.
а вот насчет заполнения по 300 и тд. тут проблема в том что при наличии \n\n все становится очень печально, ибо эти знаки считаются за два, а места занимает как целая строка. Это может и 100 символов и тд. |
Цитата:
|
что-то я не совсем улавливаю если честно
|
mitiya,
Вталкиваешь в блок по 300 символов своего текста (заранее установил высоту блока) - при появлении скролла(событие) убираешь последнюю строку и запихиваешт половину - если событие -вновь - опять убираешь и запихивашь половину - за два три цикла -скрола не будет - ти заполнил блок под заязку - запомнил индекс конечного вставленого символа и мон продолжить пихать в очередной блок (или как там у Вас .. |
Цитата:
как од примерно выглядеть будет ? |
Цитата:
<div id=Div contenteditable="true" onscroll="alert("Высота заполнена")" style="line-height:90%;border:blue 1px solid;height:100px;width:200px;overflow-y:hidden;overflow-x:visible;"> ecxvvvvvvvvvvv xcvvvvvvvvvvvvvvvv </div> <script type="text/javascript"> document.getElementById('Div').onscroll= function() {alert("A")} </script> |
да но как я прерву тот скрипт который заполоняет див ?
|
mitiya,
Вы при каждом втискивании по триста символов(цифра - примерно минимальная строка) - смотрите флаг - который выставляется по оnscroll (я ж описал алгоритм |
Цитата:
|
mitiya,
Хороший вопрос - пока не знаю - Поскольку началось с RegExp для замены пустых строк в тексте. |
вот вот. я регэкспом хотел привести текст в предсказуемый вид, и выводить столько строк сколько надо. но регэкспа так никто и не подкинул ((
|
Цитата:
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script> <textarea id="txt" rows="5">row1 row2 row3 row4</textarea><br/> <button id="btn">Click</button> <script type="text/javascript"> $('#btn').click(function(){ var str=$('#txt').val(); str=str.replace(/[\n\r](?:[\s(?: )]*)(?=[\n\r])/g,''); $('#txt').val(str); }); </script> |
Часовой пояс GMT +3, время: 06:30. |