обработка текста из 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, время: 20:38. |