Вопрос № 167113: Добрый вечер Уважаемые эксперты. У меня появился вопрос, нашел в нете ява скрипт для замены кода на смайлики, попытался ее переделать. Ничего не вышло. Я не понимаю каким образом разобрать например эти строки ['mellow', /:-||:||=|...
Вопрос № 167.113
Добрый вечер Уважаемые эксперты. У меня появился вопрос, нашел в нете ява скрипт для замены кода на смайлики, попытался ее переделать. Ничего не вышло. Я не понимаю каким образом разобрать например эти строки ['mellow', /:-||:||=|/gi], ['sad', /:(+|:-(+|=(+|:-[|:[|=[/gi], Где из них какой смайл, и что значат в этих строках знаки "/","". Я хотел бы добавить например чтобы за грустный отвечал еще код "грустный", как мне это сделать? Намучался...
Никак не получалось.. пожалуйста подскажите. Заранее спасибо.
Приложение:
Отправлен: 12.05.2009, 19:53
Вопрос задал: Dimon4ik (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 6)
Ну, на сколько я могу судить, то 'mellow' и 'sad' это названия смайликов - "на веселе" и "грустный"
Пройдёмся теперь по регулярным выражениям.
['mellow', /:-||:||=|/gi]
//gi - всё, что находится между двумя слэшами это регулярное выражение. g - значит global (искать все воплощения выражения во всей строке), i - invariant (искать без учёта регистра)
Разберём выражение между двумя слэшами ":-||:||=|"
:-|
- значит строка вида ":-|" ( бэкслэш "" перед символом "|" это просто символ escaping (простите, не знаю как это будет по-русски), дело в том, что сам сивол "|" это логическое "или" и потому нужен escaping, чтобы превратить его просто в символ "|" ) То есть получаем из всей строки ":-|" или ":|" или "=|".
Это и есть те наборы символов, которые, наверное, и
будут заменены на слово mellow
то же самое и для второго объекта
'sad', /:(+|:-(+|=(+|:-[|:[|=[/gi
":(" или ":-(" или "=(" или ":-[" или "=[" будут заменены на слово sad
Кстати, плюсики после символов "(" говорят о том, что их (символов "(" ) должно быть как минимум один. Таким образом выражение распространяется на наборы символов с любым количеством символов "(" больше или равно 1.
например
:-(((( или :((((((((((((((((((((
более подробно о регулярных выражениях (regular expression) можете почитать вот здесь https://developer.mozilla.org/En/Core_JavaScript_1.5_Guide/Regular_Expressions или ещё на сотне-другой подобных ресурсов которые Вы с лёгкостью найдёте в гугле.
Удачи
--------- There are 10 types of people. Those who understand binary and those who don't.
Ответ отправил: Иоффе Мэир Вэлевич (статус: Студент)
Ответ отправлен: 13.05.2009, 01:39
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 249057 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо за полный и очень хороший ответ. Вы мне очень сильно помогли. Большое спасибо.
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.