LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

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

Всем привет!

Вот так проверяю наличие эмоджи в заголовке:

function isEmoji() {
        var str = document.getElementById('Title').value;

        var ranges = [
            '\ud83c[\udf00-\udfff]', // U+1F300 to U+1F3FF
            '\ud83d[\udc00-\ude4f]', // U+1F400 to U+1F64F
            '\ud83d[\ude80-\udeff]' // U+1F680 to U+1F6FF
        ];
        if (str.match(ranges.join('|'))) {
            return alert('1');
        } else {
            return alert('0');
        }
    }


А вот как бы еще подсчитать количество этих эмоджи?
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
t-alexashka
@t-alexashka
Сразу пишу legacy код
Если проверять совпадение регуляркой с флагом g (глобальным) то match возвращает найденные элементы в виде массива, length которого покажет кол-во найденных подстрок.

47dd07fd70c3933e2dac8.png

Вот такой вариант вернет кол-во найденных эмоджи, соотв. это так же можно проверять на true|false уже на выходе.

function isEmoji() {
	
	var str = document.getElementById('Title').value;

    var ranges = [
        '\ud83c[\udf00-\udfff]', // U+1F300 to U+1F3FF
        '\ud83d[\udc00-\ude4f]', // U+1F400 to U+1F64F
        '\ud83d[\ude80-\udeff]' // U+1F680 to U+1F6FF
    ];
		
	return str.match(new RegExp(ranges.join('|'), 'g')).length;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы