Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.08.2010, 16:31
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Число знаков в textarea без тегов
Здравствуйте. В JS я новичок. Хочу сделать счетчик симовлов и "веса текста" для текстового поля. Получилось вот как:

<html>
<head>
<script>
function counter(el)
{

el=el.replace(/<\/?[^>]+>/g, '');
document.getElementById('count').innerHTML = el.value.length;
document.getElementById('kb').innerHTML = (el.value.length/1024).toFixed(2);
}
</script>
</head>
<body>
Вы ввели: <span id='count'>0</span> символов. <span id='kb'>0</span>Kb
<form>
<textarea id="text" onkeypress="counter(this);" onkeyup="counter(this);" onchange="counter(this);"></textarea><br>
</form>
</body>
</html>


Все работет, но я хотел чтобы считалось без учета тэгов, поэтому получилось, хотел вставить вот такую строку с регулярным выражением.

el=el.replace(/<\/?[^>]+>/g, '');


После этого все все вообще перестает работать. В чем дело, что не так?
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2010, 16:39
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Надёжней всего делать через DOM:

<html>
<head>
<script>
function counter(el)
{
var wrapper = document.createElement('DIV');
wrapper.innerHTML = el.value;
var len = (wrapper.textContent || wrapper.innerText).length;
document.getElementById('count').innerHTML = len;
document.getElementById('kb').innerHTML = (len/1024).toFixed(2);
}
</script>
</head>
<body>
Вы ввели: <span id='count'>0</span> символов. <span id='kb'>0</span>Kb
<form>
<textarea id="text" onkeypress="counter(this);" onkeyup="counter(this);" onchange="counter(this);"></textarea><br>
</form>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 11.08.2010, 16:51
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Спасибо, exec, вы просто кудесник! А как красиво сделать что-бы считал еще сразу через | с учетом тэгов? Я думаю что смогу сделать, но думаю такого нагорожу))))
Ответить с цитированием
  #4 (permalink)  
Старый 11.08.2010, 17:03
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

<html>
<head>
<script>
function counter(el)
{
var wrapper = document.createElement('DIV');
wrapper.innerHTML = el.value;
var len = (wrapper.textContent || wrapper.innerText).length;
document.getElementById('count').innerHTML = len + ' | ' + el.value.length;
document.getElementById('kb').innerHTML = (len/1024).toFixed(2);
}
</script>
</head>
<body>
Вы ввели: <span id='count'>0</span> символов. <span id='kb'>0</span>Kb
<form>
<textarea id="text" onkeypress="counter(this);" onkeyup="counter(this);" onchange="counter(this);"></textarea><br>
</form>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 11.08.2010, 17:07
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Еще раз большое спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 29.09.2012, 10:43
MCB MCB вне форума
Аспирант
Отправить личное сообщение для MCB Посмотреть профиль Найти все сообщения от MCB
 
Регистрация: 30.10.2011
Сообщений: 37

А можно-ли изменить скрипт, чтобы не считал только теги?
сейчас он не считает <dsds>

Последний раз редактировалось MCB, 29.09.2012 в 10:51.
Ответить с цитированием
  #7 (permalink)  
Старый 29.09.2012, 11:04
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,583

<dsds> - вполне себе html5 тег.
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 29.09.2012, 11:06
MCB MCB вне форума
Аспирант
Отправить личное сообщение для MCB Посмотреть профиль Найти все сообщения от MCB
 
Регистрация: 30.10.2011
Сообщений: 37

значит не удачный пример, не тег к примеру <di3bsik>
Ответить с цитированием
  #9 (permalink)  
Старый 29.09.2012, 11:12
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,583

Нет, я к тому что что угодно в <> - рабочий тег.
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка тегов в textarea erik Общие вопросы Javascript 4 13.04.2009 14:30