Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.05.2014, 21:02
Интересующийся
Отправить личное сообщение для sanika Посмотреть профиль Найти все сообщения от sanika
 
Регистрация: 25.05.2012
Сообщений: 11

Как посчитать число смайлов в тексте?
Надо делать мгновенный подсчет на смайлы в тексте.
Сделал вот таким образом

var my_text = document.getElementById('myTextArea');
count_smiles=(my_text.value.match(/[:)\:(\;)]/g).length);
alert(count_smiles);


Но есть сложность - получаю не число смайлов, а число совпавших символов. а если просто ввожу скобки, двоеточие или точку с запятой - по считает по одному символу. А еще проблема в том что смайл может быть и 3 символа - типа
:-)
Или даже больше
*beer*


Как можно реализовать такой подсчет?
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2014, 21:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

sanika,
сделайте split на все возможные значения
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2014, 21:16
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

sanika,
var smiles = ":)  :-) *beer* :-)";
      
console.log( smiles.match(/(\:-?\))|(\*beer\*)/gi));
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2014, 21:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123


<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<textarea id="myTextArea" name="" rows="15" cols="35">
;)
:)
:-)
Или даже больше
*beer**beer*



        *beer*

</textarea>
<script>
var my_text = document.getElementById('myTextArea'),
count_smiles=(my_text.value.split(/:-\)|\*beer\*|:\)|;\)/).length-1);
alert(count_smiles);
</script>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 23.05.2014, 01:00
Интересующийся
Отправить личное сообщение для sanika Посмотреть профиль Найти все сообщения от sanika
 
Регистрация: 25.05.2012
Сообщений: 11

рони, cyber, спасибо за наставление. очень выручили.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отформатировать число 10000 -> 10 000,00 .andreev Общие вопросы Javascript 4 08.06.2016 10:32
как выводить число в формате 0,00 Zzet Общие вопросы Javascript 2 24.11.2009 15:16
Как округлить число в меньшую сторону с заданной точностью? barcelona Общие вопросы Javascript 2 19.08.2009 12:07
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как прибавлять число к числу? Forgott Общие вопросы Javascript 9 06.05.2008 08:47