Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как посчитать число смайлов в тексте? (https://javascript.ru/forum/misc/47415-kak-poschitat-chislo-smajjlov-v-tekste.html)

sanika 22.05.2014 21:02

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

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


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


Как можно реализовать такой подсчет?

рони 22.05.2014 21:16

sanika,
сделайте split на все возможные значения

cyber 22.05.2014 21:16

sanika,
var smiles = ":)  :-) *beer* :-)";
      
console.log( smiles.match(/(\:-?\))|(\*beer\*)/gi));

рони 22.05.2014 21:25

:write:
<!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>

sanika 23.05.2014 01:00

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


Часовой пояс GMT +3, время: 15:15.