обработка текста из textarea на js
Добрый день.
У меня вопрос. Есть textarea с таким текстом, отбитый enter. Потом этот текст выводится в div на другой странице но уже в 1 строчку. Слепленый текст без точек и пробелов смотрится не красиво. Можно ли на js(jquery) отслеживать этот текст, смотреть строчки где нету точек в конце и добавлять их? Или это можно сделать токо на php? Код:
Здравствуйте , я ваша тетя |
можно отлавливать переводы строк и заменять их на <br /> или тоже самое и заменять на .
|
var str = 'Здравствуйте , я ваша тетя \r\nПора завтракать.\r\nПора ужинать';
console.log(str.split('\r\n').join('.')) |
|
Цитата:
|
skrudjmakdak, чтобы текст на странице смотрелся так же как и в textarea
|
ОлегА,
не нужно , разделять br , надо токо точки ставить там где их нету а как проверить кст если в конце строчи точка или нет? |
<!DOCTYPE html> <html> <head> </head> <body> <textarea onblur="e(this);"></textarea> <div id="d"></div> <script type="text/javascript"> function e(ths) { document.getElementById('d').innerHTML = ths.value.split('\n').join('.'); } </script> </body> </html> |
|
pre - это не красиво
|
<!DOCTYPE html> <html> <head> </head> <body> <textarea onblur="e(this);"></textarea> <div id="d"></div> <script type="text/javascript"> function e(ths) { var ar = ths.value.split('\n'); for(var i = 0; i < ar.length; i++) ar[i] = ar[i] + ((/^.*[.]$/.test(ar[i])) ? '' : '.'); document.getElementById('d').innerHTML = ar.join(' '); } </script> </body> </html> |
str = 'Здравствуйте , я ваша тетя \r\nПора завтракать.\r\nПора ужинать'; str = str.replace(/([\s\.]\r\n|$)/g,"."); alert(str) |
ОлегА, что то ваш вариант у меня не идет:
<!DOCTYPE html> <html> <head> </head> <body> <textarea onblur="e(this);">Здравствуйте , я ваша тетя Пора завтракать. Пора ужинать</textarea> <div id="d"></div> <script type="text/javascript"> function e(ths) { document.getElementById('d').innerHTML = ths.value.replace(/([\s\.]\r\n|$)/g,"."); } </script> </body> </html> |
<!DOCTYPE html> <html> <head> </head> <body> <textarea onblur="e(this);">Здравствуйте , я ваша тетя Пора завтракать. Пора ужинать</textarea> <div id="d"></div> <script type="text/javascript"> function e(ths) { document.getElementById('d').innerHTML = ths.value.replace(/((\s|\.|)?\n|$)/g,"."); } </script> </body> </html> |
Учитывайте пробелы после точки, два переноса строки )))
var str="Здравствуйте , я ваша тетя\nПора завтракать.\r\nПора ужинать \r\nЗдравствуйте , я ваша тетя\r\n\r\n\r\nПора завтракать. \nПора ужинать."; str=(str?str+"\n":str).split(/\.?\s*$/mg).join("."); alert(str); |
там нужно учитывать не только пробелы , и все знаки препинания тоже, да лучше убирать лишние пробелы но у меня ни как не получается сделать и то и то,
текст мне нужно вставлять прямо в тот же textarea <!DOCTYPE html> <html> <head> </head> <body> <textarea id='ta' cols="30" rows="10" onblur="e(this);"></textarea> <div id="d"></div> <script type="text/javascript"> function e(ths) { var ar = ths.value.split('\n'); for(var i = 0; i < ar.length; i++) if ( ar[i] != '' ) { ar[i] = ar[i] + ((/^.*[\.\?\!\,]$/.test(ar[i])) ? '' : '.'); } document.getElementById('ta').value = ar.join(' '); } </script> </body> </html> |
<!DOCTYPE html> <html> <head> </head> <body> <textarea id='ta' cols="30" rows="10" onblur="e(this);"> Здравствуйте , я ваша тетя Пора завтракать. Пора ужинать Здравствуйте , я ваша тетя? Да не, ты дядя!!! Пора завтракать, Пора ужинать. </textarea> <div id="d"></div> <script type="text/javascript"> function e(ths) { var ar = ths.value.replace(/(^\s+|\s+$)/g,'').split(/\s*\n\s*/); for(var i = 0,s=ar.length; i < s; i++) if (ar[i]) { ar[i] = ar[i] + ((/[\.\?!,]$/.test(ar[i])) ? '' : '.'); } document.getElementById('ta').value = ar.join(' '); } </script> </body> </html> |
edison
вот еще вопрос как перевести только 1ую букву в верхний регистр если строка начинается с маленькой буквы? |
var str = 'hello world!'; str = str.substr(0, 1).toUpperCase() + str.substr(1); alert(str); Можно так попробовать. |
Часовой пояс GMT +3, время: 09:17. |