Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2019, 12:58
Интересующийся
Отправить личное сообщение для maksmkv Посмотреть профиль Найти все сообщения от maksmkv
 
Регистрация: 22.09.2016
Сообщений: 19

Удаление двойных пробелов, удаление пустых строк в textarea
Всем привет. Есть textarea. В ней храниться текст, в котором содержаться двойные пробелы и пустые строки. Код который сейчас использую оработает не соувсем корректно, а именно он удаляет пробелы лишние и строки получаются склеенными ((( Например: Должно быть "Привет 123", а получается "Привет123".

$(document).ready(function () {
    $('#que1').focusin(function () {
        var text = $('#que1').val();
        text = text.replace(/\r?\n/g, "");
        $(this).val(text);
    });
});


Как можно исправить? И еще вопрос - изменения вступают после наведения фокуса на textarea, а как сделать что бы при нажатии кнопки текст сначала проходил форматирование, а потом далее по коду нажатия кнопки выполнялись действия? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2019, 14:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,316

/\r?\n{2,}/g
Ответить с цитированием
  #3 (permalink)  
Старый 09.01.2019, 15:08
Интересующийся
Отправить личное сообщение для maksmkv Посмотреть профиль Найти все сообщения от maksmkv
 
Регистрация: 22.09.2016
Сообщений: 19

Не работает (((
Ответить с цитированием
  #4 (permalink)  
Старый 09.01.2019, 15:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,316

Сообщение от maksmkv
Не работает
Ну правильно, ибо Ctrl + C. Надо не на пустоту заменять два и более переноса, а на перенос.

PS. Да и я тоже хорош, скопировал и... правильно так /(\r?\n){2,}/

Последний раз редактировалось laimas, 09.01.2019 в 15:55.
Ответить с цитированием
  #5 (permalink)  
Старый 09.01.2019, 19:49
Интересующийся
Отправить личное сообщение для maksmkv Посмотреть профиль Найти все сообщения от maksmkv
 
Регистрация: 22.09.2016
Сообщений: 19

Вот такое еще решение получилось найти, выше код не
совсем верно работает str.replace(/\s+/g,' ')
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2019, 11:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,316

Тогда я не понимаю чего нужно. Речь шла об удалении лишних переносов строк, причем тут пробелы? Переносы удалить, это:

<pre id="str"></pre>

<script>
var s = `Hello
1111
Hello



2222

Hello


3333`;

document.getElementById('str').textContent = s.replace(/(\r?\n){2,}/g, '$1');
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2019, 10:48
Интересующийся
Отправить личное сообщение для maksmkv Посмотреть профиль Найти все сообщения от maksmkv
 
Регистрация: 22.09.2016
Сообщений: 19

Спасибо. Почему не срабатывает в таком виде? Суть добавил текст, нажал кнопку, удалились все пробелы, табы и прочие переносы строк - получил результат в textarea.
<script src="http://code.jquery.com/jquery-latest.js"></script>
...
<textarea id="que1"></textarea>
<input type="button" value="Вывод" onclick=Ext_Out()>   
...


function Ext_Out()
{
var que1_text = $("#que1").val();

$(document).ready(function () {
    $('#que1').focus(function () {
        var text = $('#que1').val();
	text = text.replace(/(\r?\n){2,}/g, '$1');

        $(this).val(text);
    });
});


Строку ввел:

123123123
342423
 12312313131 312 31 23    3123211312123

Последний раз редактировалось maksmkv, 12.01.2019 в 11:16.
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2019, 11:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,316

А где вы увидели, чтобы обработчик события загрузки документа определялся вызовом функции?
Ответить с цитированием
  #9 (permalink)  
Старый 12.01.2019, 11:53
Интересующийся
Отправить личное сообщение для maksmkv Посмотреть профиль Найти все сообщения от maksmkv
 
Регистрация: 22.09.2016
Сообщений: 19

Не очень понял (((, знаний пока не хватает. Читаю книги по JS, но по работе столкнулся раньше с формами и приходится пропускать часть курсов. Поэтому есть ошибки и не понимание. Даже если обработчик добавить на страницу с HTML и записать focusin - все равно не срабатывает (
Ответить с цитированием
  #10 (permalink)  
Старый 12.01.2019, 12:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,316

$(document).ready(function () ... это функция, которая запустится после загрузки документа, то есть тогда, когда будет сформирован DOM и когда на элементы можно устанавливать обработчики. Для того чтобы реабилитироваться за пропущенные уроки, ответьте себе сами, что происходит у вас в вашем коде, когда вы данную функцию упрятали в пользовательскую функцию.

<html>
<head>
<meta charset="utf-8">
<title>aaa</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function() { //тоже самое что и $(document).ready(function () ...
    $('#que1').focus(function () {
        this.value = this.value.replace(/(\r?\n){2,}/g, '$1');
    });  
});
</script>
</head>
<body>
<textarea id="que1"></textarea>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление пробелов в начале и конце строки CyMKuH Общие вопросы Javascript 6 22.03.2016 12:41
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 15:42
Удаление всех строк внутри tbody stos Общие вопросы Javascript 9 06.01.2012 15:57
Переводы строк в textarea на разных платформах GRIG Элементы интерфейса 2 06.10.2011 11:41
Удаление пробелов из строки thunder2 Общие вопросы Javascript 4 03.01.2010 21:02