Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: удалить из строки все небуквенно-числовые символы, оставив смайлики
Покинул форум
Сообщений всего: 7
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
Доброе утро!
Пожалуйста, подскажите, как мне удалить из строки все небуквенно-числовые символы, но при этом оставить смайлики.
Например, юзер ввел строку: Привет!!! :)
так вот в итоге я должна получить строку Привет :)
Regex для того,чтобы найти, а затем удалить небуквенно-числовые символы: /[^a-zA-ZА-Яа-я0-9\s*]/iu
как в него добавить исключение вроде
если есть последовательность символов ":)" , то ее не трогать.
Также смайлики могут быть вбиты через пробелы.
Например, ": )" вместо ":)" или ": P" вместо ":P".
Если кто-то знает, как написать такое регулярное выражение - буду рада помощи!
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
а чем привет!!! хуже чем првиет без знаков?
нужно понять насколько много смайликов есть и обработать их в виде исключеия. так как в смайликах могут использоваться очень даже не алавитно-цифровые символы
без этого смысла писать регулярку нет, потому что она потрет половину смайлов
----- Just do it
andrewkard
Отправлено: 13 Августа, 2015 - 12:01:06
Участник
Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014
Помог: 30 раз(а)
Можно так:
/[А-Яа-я\s\:\)]{1,}/
sun1_sun2_sun3
Отправлено: 13 Августа, 2015 - 12:18:22
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
> а чем привет!!! хуже чем привет без знаков?
Это я так для наглядности взяла пример)
> нужно понять насколько много смайликов есть и обработать их в виде исключеия. так как в смайликах могут использоваться очень даже не алавитно-цифровые символы
> без этого смысла писать регулярку нет, потому что она потрет половину смайлов
Я думаю обрабатывать только самые распространенные смайлики (не больше 20).
для начала :) и :(.
я не могу додуматься как их в регулярку засунуть
> Можно так: /[А-Яа-я\s\:\)]{1,}/
эта регулярка не подойдет, так как часть выделенная жирным
/[А-Яа-я\s\:\)]{1,}/
будет искать отдельные символы :, ).
А мне нужно, именно, последовательность символов:)
(также необходимо учесть что смайлик может быть введен с пробелами).
Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014
Помог: 30 раз(а)
sun1_sun2_sun3 пишет:
вот только хотелось бы объединить это все в 1 регулярку
вряд ли это возможно (Добавление)
Можно уменьшить количество ошибок, на клиенте перед отправкой проверяйте по такому выражению, и если такие символы присутствуют, подсвечивайте их и не позволяйте отправить до исправления.
/([^\s]{1}\:|\)[^\s]{1})/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.