Последняя строка из 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, время: 05:48. |