Последняя строка из textarea
Есть textarea, и в нем могут быть десятки строк, но как извлечь только последнюю?
К примеру: <textarea> Строка 1 Строка 2 </textarea> Как сделать, чтобы вернуло последнюю строку, при этом не зная ее номера |
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>
|
рони, это очевидно предпоследняя. Совершенно не факт, что в конце будет лишний перенос строки или что оных не будет десять.
<textarea ondblclick="alert( value.match(/([^\r\n]*)\s*$/)[1] )"> Строка 1 Строка 2 </textarea> |
Aetae,
от 10 переносов как раз сработает нормально -- а вот если нет совсем то выдаст неправильный результат |
:)
ещё вариантик <textarea ondblclick="var a=value.split(/$\s*/m) ; alert(a[a.length-1]||a[a.length-2])"> Строка 1 Строка 2 </textarea> |
Твой код в самый раз (просто первый попробовал). Реализовал так:
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;
}
}
Получилось даже такаю плюшка о которой я не думал: текст отправляется функции по нажатии єнтр, т.е при переводе на новый рядок |
Чё мудрить-то: регулярка-то - простейшая!
var comm = document.getElementById('console').value.match(/.*$/)[0];
|
Sweet, ну какбэ в изначальном примере по такой регулярке найдётся пустая строка. Понятно что формально правильно, но... :)
|
Цитата:
|
| Часовой пояс GMT +3, время: 08:47. |