Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2014, 00:51
Аспирант
Отправить личное сообщение для TimohaP Посмотреть профиль Найти все сообщения от TimohaP
 
Регистрация: 30.06.2014
Сообщений: 56

Последняя строка из textarea
Есть textarea, и в нем могут быть десятки строк, но как извлечь только последнюю?
К примеру:
<textarea>
Строка 1
Строка 2
</textarea>

Как сделать, чтобы вернуло последнюю строку, при этом не зная ее номера
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2014, 01:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

TimohaP,

<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<textarea>
Строка 1
Строка 2
</textarea>
<script>
 var a = document.querySelector('textarea').value.split(/[\r\n]+/) ;
     alert(a[a.length-2])
</script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2014, 02:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

рони, это очевидно предпоследняя. Совершенно не факт, что в конце будет лишний перенос строки или что оных не будет десять.
<textarea ondblclick="alert( value.match(/([^\r\n]*)\s*$/)[1] )">
Строка 1
Строка 2
</textarea>
__________________
29375, 35

Последний раз редактировалось Aetae, 28.07.2014 в 02:12.
Ответить с цитированием
  #4 (permalink)  
Старый 28.07.2014, 02:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Aetae,
от 10 переносов как раз сработает нормально -- а вот если нет совсем то выдаст неправильный результат
Ответить с цитированием
  #5 (permalink)  
Старый 28.07.2014, 03:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071


ещё вариантик
<textarea ondblclick="var a=value.split(/$\s*/m) ; alert(a[a.length-1]||a[a.length-2])">
Строка 1
Строка 2
</textarea>
Ответить с цитированием
  #6 (permalink)  
Старый 28.07.2014, 12:18
Аспирант
Отправить личное сообщение для TimohaP Посмотреть профиль Найти все сообщения от TimohaP
 
Регистрация: 30.06.2014
Сообщений: 56

Твой код в самый раз (просто первый попробовал). Реализовал так:
function writeToConsole(text){
	refreshConsoleText();
	document.getElementById('console').innerHTML = consoleText + text + '\n';
	return text;
}
function commandSpot(){
	var comm = document.getElementById('console').value.match(/([^\r\n]*)\s*$/)[1] ;
	return comm;
}
//core
refreshConsoleText()
	document.getElementById('console').onkeypress = function() {
	var line = commandSpot();
	switch(line){
		case 'test':
			writeToConsole('Work!');
			break;
		default:
			alert(Undefinde command!);
			break;
	}
}

Получилось даже такаю плюшка о которой я не думал: текст отправляется функции по нажатии єнтр, т.е при переводе на новый рядок
Ответить с цитированием
  #7 (permalink)  
Старый 28.07.2014, 13:24
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Чё мудрить-то: регулярка-то - простейшая!
var comm = document.getElementById('console').value.match(/.*$/)[0];
Ответить с цитированием
  #8 (permalink)  
Старый 28.07.2014, 13:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

Sweet, ну какбэ в изначальном примере по такой регулярке найдётся пустая строка. Понятно что формально правильно, но...
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 28.07.2014, 14:06
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Aetae
ну какбэ в изначальном примере по такой регулярке найдётся пустая строка.
Ну так это какбэ потому, что в изначальном примере последняя строка - пустая Я думаю, что пример - это просто пример. И если нужна последняя строка - так и получай последнюю строку.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery отследить переход на новую строку в textarea andreo Общие вопросы Javascript 1 24.10.2014 21:38
Проблема с textarea bgraf Общие вопросы Javascript 1 15.07.2013 10:31
вставка textarea torsar Events/DOM/Window 2 14.03.2013 15:32
Предполагается наличие ';' в IE7- FINoM (X)HTML/CSS 5 25.08.2012 16:05
обновить textarea wp2 Events/DOM/Window 6 03.02.2012 23:44