 
			
				09.01.2019, 13:58
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.09.2016 
					
					
					
						Сообщений: 22
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Удаление двойных пробелов, удаление пустых строк в textarea
			 
			
		
		
		
		Всем привет. Есть textarea. В ней храниться текст, в котором содержаться двойные пробелы  и  пустые строки. Код который сейчас использую оработает не  соувсем корректно, а именно  он удаляет  пробелы  лишние и строки  получаются склеенными ((( Например:   Должно быть "Привет 123", а получается "Привет123".  
$(document).ready(function () {
    $('#que1').focusin(function () {
        var text = $('#que1').val();
        text = text.replace(/\r?\n/g, "");
        $(this).val(text);
    });
});
Как можно  исправить? И еще вопрос - изменения  вступают  после  наведения фокуса на textarea, а как сделать что бы при  нажатии кнопки текст  сначала  проходил  форматирование,  а  потом  далее по  коду нажатия  кнопки выполнялись  действия? Спасибо.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				09.01.2019, 15:55
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 /\r?\n{2,}/g 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				09.01.2019, 16:08
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.09.2016 
					
					
					
						Сообщений: 22
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Не работает ((( 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				09.01.2019, 16:31
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от maksmkv
			
		
	 | 
 
	| 
		Не работает
	 | 
 
	
 
 Ну правильно, ибо Ctrl + C. Надо не на пустоту заменять два и более переноса, а на перенос.
 
PS. Да и я тоже хорош, скопировал и... правильно так /(\r?\n){2,}/  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось laimas, 09.01.2019 в 16:55.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				09.01.2019, 20:49
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.09.2016 
					
					
					
						Сообщений: 22
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Вот такое  еще  решение  получилось найти, выше код не  
 совсем верно работает    str.replace(/\s+/g,' ') 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2019, 12:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Тогда я не понимаю чего нужно. Речь шла об удалении лишних переносов строк, причем тут пробелы? Переносы удалить, это: 
<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>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.01.2019, 11:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.09.2016 
					
					
					
						Сообщений: 22
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Спасибо. Почему не срабатывает в таком виде? Суть добавил  текст, нажал кнопку, удалились  все пробелы, табы  и  прочие переносы строк  - получил результат в 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 в 12:16.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.01.2019, 12:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 А где вы увидели, чтобы обработчик события загрузки документа определялся вызовом функции? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.01.2019, 12:53
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.09.2016 
					
					
					
						Сообщений: 22
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Не очень  понял (((,  знаний пока не  хватает. Читаю  книги  по JS, но  по  работе столкнулся раньше с формами  и  приходится пропускать  часть курсов. Поэтому есть ошибки  и не понимание. Даже  если обработчик добавить на страницу с HTML и записать focusin  - все равно не срабатывает ( 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				12.01.2019, 13:50
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		$(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>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |